CN118410094B - 一种网络化的Hive表数据加载方法 - Google Patents
一种网络化的Hive表数据加载方法 Download PDFInfo
- Publication number
- CN118410094B CN118410094B CN202410866252.6A CN202410866252A CN118410094B CN 118410094 B CN118410094 B CN 118410094B CN 202410866252 A CN202410866252 A CN 202410866252A CN 118410094 B CN118410094 B CN 118410094B
- Authority
- CN
- China
- Prior art keywords
- server
- hive
- data
- file
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据Hive技术领域,尤其涉及一种网络化的Hive表数据加载方法,包括:在客户端主机中保存服务端接受客户端主机的文件的系统路径;解析出用户名和密码;使用所述服务端尝试访问子目录,捕获尝试访问中出现的异常访问的捕获次数;在所述客户端主机名与所述服务端主机名相同或加载指令未携带用户名和密码时直接从本地目录读取数据导入所述Hive表。本发明通过加密传输减少了数据泄露的风险,显著提升了数据加载的安全性,同时,通过自动化的远程加载流程和智能优化的数据移动任务,提高了操作的效率和数据加载的性能,服务端的实时监控和错误恢复机制进一步增强了数据加载的可靠性,确保了即使在出现问题时也能快速响应和解决。
Description
技术领域
本发明涉及大数据Hive技术领域,尤其涉及一种网络化的Hive表数据加载方法。
背景技术
随着大数据时代的到来,数据量急剧增长,企业对数据处理和分析的需求日益增加。Hive作为Hadoop生态系统中的一个数据仓库工具,用于对存储在分布式文件系统中的大数据进行查询和管理,然而,在传统的Hive使用场景中,当服务端节点无法直接访问数据存放的节点时,使用Hive的load命令将本地磁盘上的数据加载到Hive表中会遇到限制,这导致了数据加载的灵活性不足,影响了数据处理的效率和便捷性。
公开号为CN114416853A的专利文献公开了一种Hive海量数据导入Hbase的数据加载系统及数据加载方法,该方法包括:通过配制在大数据离线调度系统上的Spark-HFile生成模块读取Hive表中的待加载数据,然后采用Apache Spark分布式计算引擎将Hive表中待加载数据根据Hive表字段与Hbase表的映射配置,生成Hbase表所需的底层HFile文件,并写入指定的HDFS目录;通过配制在大数据离线调度系统上的HFile在线数据加载模块将步骤1中HDFS目录中的HFile文件在线加载到Hbase表中,提供面向用户的业务查询服务。该方法依赖于Apache Spark和Hadoop生态系统,限制了其在非Spark或非Hadoop环境中的适用性,使用Spark生成HFile文件并写入HDFS可能需要一定的时间,特别是对于大规模数据,导致数据迁移过程耗时较长,Hive表字段与Hbase表映射配置可能在实际操作中较为复杂,需要详细的映射规则和转换逻辑,该方法主要针对批量数据加载,对于需要实时或近实时数据加载的场景不够有效,随着数据量的增长和业务需求的变化,当服务端所在节点无法直接访问数据存放的节点时不能使用Hive的load命令将本地磁盘上的数据加载到Hive表中导致数据加载的灵活性差。
发明内容
为此,本发明提供一种网络化的Hive表数据加载方法,用以克服现有技术中当服务端所在节点无法直接访问数据存放的节点时不能使用Hive的load命令将本地磁盘上的数据加载到Hive表中导致数据加载的灵活性差的问题。
为实现上述目的,本发明提供一种网络化的Hive表数据加载方法,包括:
步骤S1,在客户端主机的配置文件中通过增加服务端参数保存服务端接受客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受的客户端主机的文件的系统路径,通过在加载指令前添加客户端主机的用户名和密码以修改客户端主机的加载指令的格式;
步骤S2,在所述服务端接收到修改后的加载指令、加密后的用户名以及密码时,解析出用户名和密码,并在所述客户端主机名和当前的服务端的服务端主机名不一致且加载指令中携带用户名和密码时,执行远程加载流程,所述远程加载流程包括,使用SCP文件传输协议将文件从客户端主机拷贝到所述服务端指定的系统路径下,并创建以所述客户端主机的会话ID命名的子目录,并在文件拷贝完成后,继续执行加载指令的剩余部分,将文件导入到客户端主机中的Hive表中;
步骤S3,在创建子目录后,使用所述服务端尝试访问子目录,捕获尝试访问中出现的异常访问的捕获次数,在捕获次数大于预设的异常捕获次数时,使用所述服务端检查指定的子目录是否真实存在,
若所述子目录不存在,使用所述服务端向所述客户端主机发送错误提示信息,并重新创建所述子目录,并在所述服务端再次访问重新创建的子目录失败时;
根据预设的调整比例系数调整异常捕获次数;
步骤S4,在所述客户端主机名与所述服务端主机名相同,或,加载指令未携带用户名和密码时,则按常规本地load方式处理,直接从本地目录读取数据导入所述Hive表。
进一步地,在所述步骤S3中,使用所述服务端检查指定的子目录是否真实存在,
设置有异常捕获次数,使用所述服务端从客户端接收到的加载指令中提取子目录,并根据预设的非法字符集检查子目录是否包含非法字符,在不包含非法字符时,使用所述服务端对子目录进行尝试访问,并在尝试访问预设的访问时长内,捕获任意因权限不足而抛出的异常或错误,并记录捕获次数,对比捕获次数和异常捕获次数,
若捕获次数大于异常捕获次数,使用所述服务端向所述客户端主机发送权限不足的提示信息;
在捕获次数小于等于异常捕获次数时,使用所述服务端查询文件系统,确认子目录是否存在,
若子目录不存在,使用所述服务端向所述客户端主机发送错误提示信息,查看最近使用的文件列表,若文件列表不存在子目录,则重新创建子目录,并使用所述服务端访问重新创建的子目录,若捕获次数大于异常捕获次数,则判定异常捕获次数设置异常,降低调整异常捕获次数,
X’=X×a,其中,X’为调整后的异常捕获次数,X为设置的异常捕获次数,a为调整比例系数。
进一步地,在所述步骤S1中,在客户端主机的配置文件hive-site.xml中通过增加服务端参数hive.server2.loadfile.savedir,以保存服务端接受客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受所述客户端主机的文件的系统路径为服务端的指定目录下面的子目录,子目录名称为客户端的会话ID。
进一步地,在所述步骤S1中,通过在加载指令前添加客户端主机的用户名和密码修改客户端主机的加载指令的格式,并在客户端主机执行加载指令时,将用户名和密码加密后发送给所述服务端。
进一步地,在所述步骤S2中,在所述服务端接收到加载指令时,通过SQL解析器解析出所述客户端主机的用户名和密码,并对比从当前会话中获取所述客户端主机名和当前的服务端主机名,在所述客户端主机名和当前的服务端的服务端主机名不一致时,判断加载指令是否携带了所述客户端主机的用户名和密码。
进一步地,在所述步骤S2中,在所述客户端主机名和当前的服务端的服务端主机名不一致时,对加载指令进行判定,
若加载指令未携带所述客户端主机的用户名和密码,则判定加载失败,并发出相对应的异常提示信息;
若加载指令携带了所述客户端主机的用户名和密码,则通过所述服务端将用户名和密码发起SSH请求至所述客户端主机进行表数据文件的拷贝,在进行SSH远程登录时,对用户名和密码进行验证。
进一步地,在所述步骤S2中,在对用户名和密码进行验证时,
若用户名或者密码不正确,则返回所述客户端主机发出相对应的异常提示信息;
若用户名密码正确,则通过所述服务端发起SCP命令通过SSH协议将所述客户端主机的表数据文件拷贝到所述服务端的指定目录下的子目录,其中目的目录名为当前远程客户端的会话ID,执行远程拷贝文件时若出现远程目录无权限拷贝的情况,则返回相对应的异常提示信息给所述客户端主机。
进一步地,在所述步骤S5中,在所述客户端主机名与服务端主机名不同,且,加载指令携带了用户名和密码时,根据加载指令内容,所述服务端生成数据移动任务,所述数据移动任务包括:
若加载指令指定了LOCAL关键字,则先从本地文件系统读取数据并上传到HDFS;
若加载指令未指定LOCAL关键字,则直接从HDFS内部移动数据,将执行计划转化为实际任务,并提交给计算框架执行。
进一步地,所述服务端在生成数据移动任务后,将分析数据的大小、源和目标HDFS目录的距离、网络带宽和当前HDFS的负载情况,以生成最优的数据移动任务。
进一步地,在所述步骤S2中,所述服务端在执行SCP文件传输协议时,将实时监控文件传输的状态,所述监控文件传输的状态包括传输速率、传输进度和所有出现的网络错误,若在传输过程中检测到错误或文件损坏,所述服务端将启动错误恢复机制,所述错误恢复机制包括重新传输文件或向所述客户端主机提供错误日志和提示信息。
与现有技术相比,本发明的有益效果在于,通过加密传输减少了数据泄露的风险,显著提升了数据加载的安全性,同时,通过自动化的远程加载流程和智能优化的数据移动任务,提高了操作的效率和数据加载的性能,服务端的实时监控和错误恢复机制进一步增强了数据加载的可靠性,确保了即使在出现问题时也能快速响应和解决,此外,该方法的灵活性允许它适应不同的操作环境,无论是远程还是本地加载,都能保证数据正确、高效地导入到Hive表中。
进一步地,通过动态捕获和分析访问异常,服务端能够智能地识别和响应文件访问权限问题,从而减少因权限不足导致的服务中断。此外,通过与客户端的通信,用户能够及时获得关于权限问题或文件路径错误的反馈,这有助于用户快速定位并解决问题,提高整个文件加载过程的效率和用户满意度,调整异常捕获次数的机制允许系统根据实际情况自我优化,避免了因固定阈值而导致的过度报错或漏报错,增强了系统的健壮性和适应性。这种方法不仅提高了问题解决的速度,还减轻了系统管理员的负担,使他们能够更专注于其他关键任务。总的来说,这种智能化的异常处理策略显著提升了系统的用户友好性和可靠性。
进一步地,通过在配置文件中明确指定服务端的文件接收路径,简化了数据加载的路径设置和管理过程,使用会话ID作为子目录名称,为每个客户端会话提供了一个唯一的文件存储位置,这有助于区分不同会话的数据避免混淆,集中管理文件接收路径和通过会话ID组织数据,能够加强数据的安全性和隐私保护,在出现加载错误时,能够通过会话ID快速定位到具体会话的数据,便于错误追踪和调试。
进一步地,首先,通过加密用户名和密码,增强了数据加载过程中的安全性,保护了用户凭据不被截获和滥用。其次,将凭据直接嵌入到加载指令中,简化了服务端对用户身份的验证流程,使得数据加载过程更加流畅。此外,这种格式的加载指令使得服务端能够更加灵活地处理来自不同客户端的数据加载请求,同时也为客户端和服务端之间的交互提供了一种标准化的方法。最后,这种方法还有助于减少配置错误和服务端的负载,因为服务端可以通过解析加载指令中的凭据直接进行身份验证,而不需要额外的认证步骤。
进一步地,通过解析和验证用户名与密码,服务端能够确认请求的合法性,防止未授权的数据访问或潜在的安全威胁。此外,这种机制还提供了灵活性,允许远程客户端在通过身份验证后进行数据加载,同时保持了操作的透明性和简便性。
进一步地,通过要求用户名和密码的存在,服务端能够确保只有授权用户才能发起远程数据加载请求,降低了数据泄露和未授权访问的风险。同时,SSH协议的使用为数据传输过程提供了加密通道,进一步保护了数据传输过程中的安全。
进一步地,首先,通过用户名和密码的验证机制,确保了只有拥有正确凭据的用户才能访问和传输数据,这大大增强了系统的安全性。其次,使用SSH协议和SCP命令进行数据传输,不仅保证了数据传输过程的安全性,还通过会话ID命名的子目录,提高了数据管理的效率和准确性。此外,对于权限问题的错误提示,有助于快速定位并解决数据传输过程中可能出现的问题。
进一步地,通过提供灵活的数据加载路径,允许数据根据实际情况从本地文件系统或HDFS直接加载到Hive表中。这种方法不仅优化了数据传输过程,减少了不必要的数据复制,还提高了数据加载的效率。特别是对于大规模数据集,直接在HDFS内部进行数据移动可以显著减少网络传输的开销,从而加快整体的数据加载速度。
进一步地,首先,通过优化数据移动任务,可以显著提高数据传输的效率,尤其是在处理大量数据或跨远距离传输时。其次,对网络带宽和HDFS负载的考量有助于避免网络拥塞和系统过载,确保数据移动不会对其他HDFS操作造成干扰。此外,这种方法还能够平衡系统资源的使用,提高HDFS的整体性能和稳定性。最终,这些优化措施有助于提升数据加载的可靠性,确保数据移动任务的顺利完成,为数据分析和处理提供了坚实的基础。
进一步地,通过实时监控,服务端能够快速响应传输过程中的问题,减少了因未检测到错误而导致的数据丢失或损坏的风险。此外,错误恢复机制的存在确保了即使在出现问题时,也能够及时采取措施,尝试恢复或重新传输文件,从而保证了数据加载过程的连续性和完整性。
附图说明
图1为本实施例网络化的Hive表数据加载方法的流程图;
图2为本实施例网络化的Hive表数据加载方法的判定逻辑图;
图3为本实施例对加载指令进行判定的判定逻辑图;
图4为本实施例验证用户名和密码的判定逻辑图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
请参阅图1所示,其为本实施例网络化的Hive表数据加载方法的流程图;
请继续参阅图2所示,其为本实施例网络化的Hive表数据加载方法的判定逻辑图;
本实施例提供了一种网络化的Hive表数据加载方法,包括:
步骤S1,在客户端主机的配置文件中通过增加服务端参数保存服务端接受客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受的客户端主机的文件的系统路径,通过在加载指令前添加客户端主机的用户名和密码以修改客户端主机的加载指令的格式;
步骤S2,在所述服务端接收到修改后的加载指令、加密后的用户名以及密码时,解析出用户名和密码,并在所述客户端主机名和当前的服务端的服务端主机名不一致且加载指令中携带用户名和密码时,执行远程加载流程,所述远程加载流程包括,使用SCP文件传输协议将文件从客户端主机拷贝到所述服务端指定的系统路径下,并创建以所述客户端主机的会话ID命名的子目录,并在文件拷贝完成后,继续执行加载指令的剩余部分,将文件导入到客户端主机中的Hive表中;
步骤S3,在创建子目录后,使用所述服务端尝试访问子目录,捕获尝试访问中出现的异常访问的捕获次数,在捕获次数大于预设的异常捕获次数时,使用所述服务端检查指定的子目录是否真实存在,
若所述子目录不存在,使用所述服务端向所述客户端主机发送错误提示信息,并重新创建所述子目录,并在所述服务端再次访问重新创建的子目录失败时;
根据预设的调整比例系数调整异常捕获次数;
步骤S4,在所述客户端主机名与所述服务端主机名相同,或,加载指令未携带用户名和密码时,则按常规本地load方式处理,直接从本地目录读取数据导入所述Hive表。
首先在Hive客户端配置文件中设置服务端参数,指定服务端接收文件的系统路径。接着,修改加载指令格式以包含加密的用户名和密码,然后发送至服务端。服务端接收到信息后,进行解析和验证,验证通过则执行远程加载流程,使用SCP协议将文件安全地传输到指定路径,并创建以会话ID命名的子目录,最后完成数据导入。如果客户端与服务端主机名相同或加载指令未携带凭据,则服务端按常规方式从本地目录读取数据。此外,服务端还会检查本地路径、Hive表的存在性及表分区信息的合法性,并在出现错误时提供异常提示。
通过加密传输减少了数据泄露的风险,显著提升了数据加载的安全性,同时,通过自动化的远程加载流程和智能优化的数据移动任务,提高了操作的效率和数据加载的性能,服务端的实时监控和错误恢复机制进一步增强了数据加载的可靠性,确保了即使在出现问题时也能快速响应和解决,此外,该方法的灵活性允许它适应不同的操作环境,无论是远程还是本地加载,都能保证数据正确、高效地导入到Hive表中。
具体而言,在所述步骤S1中,在客户端主机的配置文件hive-site.xml中通过增加服务端参数hive.server2.loadfile.savedir保存服务端接受客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受所述客户端主机的文件的系统路径为服务端的指定目录下面的子目录,子目录名称为客户端的会话ID。
对客户端主机的配置文件hive-site.xml进行修改,以包含一个新的服务端参数hive.server2.loadfile.savedir。这个参数用于定义服务端上一个特定的系统路径,该路径是服务端用于接收来自客户端主机的文件。随后,在执行数据加载操作时,使用加载指令来明确指定服务端的这个系统路径。特别地,服务端的路径会被设置为一个子目录,该子目录的名称与客户端主机的会话ID相对应。
通过在配置文件中明确指定服务端的文件接收路径,简化了数据加载的路径设置和管理过程,使用会话ID作为子目录名称,为每个客户端会话提供了一个唯一的文件存储位置,这有助于区分不同会话的数据避免混淆,集中管理文件接收路径和通过会话ID组织数据,能够加强数据的安全性和隐私保护,在出现加载错误时,能够通过会话ID快速定位到具体会话的数据,便于错误追踪和调试。
具体而言,在所述步骤S1中,通过在加载指令前添加客户端主机的用户名和密码修改客户端主机的加载指令的格式,并在客户端主机执行加载指令时,将用户名和密码加密后发送给所述服务端。
修改传统的加载指令格式,通过在其前添加客户端主机的用户名和密码,形成一个新的加载指令结构。这个新结构的加载指令不仅包含了数据加载的指令,还融入了安全验证的凭据。在执行这个加载指令时,客户端主机会将用户名和密码进行加密处理,以确保凭据在传输过程中的安全性,随后将加密后的凭据连同加载指令发送至服务端。
首先,通过加密用户名和密码,增强了数据加载过程中的安全性,保护了用户凭据不被截获和滥用。其次,将凭据直接嵌入到加载指令中,简化了服务端对用户身份的验证流程,使得数据加载过程更加流畅。此外,这种格式的加载指令使得服务端能够更加灵活地处理来自不同客户端的数据加载请求,同时也为客户端和服务端之间的交互提供了一种标准化的方法。最后,这种方法还有助于减少配置错误和服务端的负载,因为服务端可以通过解析加载指令中的凭据直接进行身份验证,而不需要额外的认证步骤。
具体而言,在所述步骤S2中,在所述服务端接收到加载指令时,通过SQL解析器解析出所述客户端主机的用户名和密码,并对比从当前会话中获取所述客户端主机名和当前的服务端主机名,在所述客户端主机名和当前的服务端的服务端主机名不一致时,判断加载指令是否携带了所述客户端主机的用户名和密码。
服务端在接收到来自Hive客户端的加载指令后,利用SQL解析器对语句进行解析,从中提取出加密的用户名和密码。随后,服务端会比较当前会话中获取的客户端主机名与自身的主机名。如果两者不一致,即表明请求来自远程客户端,服务端会进一步检查加载指令是否已经携带了必要的用户名和密码。这一过程是验证数据加载请求合法性的关键步骤,确保只有通过身份验证的用户才能执行数据加载操作。
通过解析和验证用户名与密码,服务端能够确认请求的合法性,防止未授权的数据访问或潜在的安全威胁。此外,这种机制还提供了灵活性,允许远程客户端在通过身份验证后进行数据加载,同时保持了操作的透明性和简便性。
请参阅图3所示,其为本实施例对加载指令进行判定的判定逻辑图;
具体而言,在所述步骤S2中,在所述客户端主机名和当前的服务端的服务端主机名不一致时,对加载指令进行判定,
若加载指令未携带所述客户端主机的用户名和密码,则判定加载失败,并发出相对应的异常提示信息;
若加载指令携带了所述客户端主机的用户名和密码,则通过所述服务端将用户名和密码发起SSH请求至所述客户端主机进行表数据文件的拷贝,在进行SSH远程登录时,对用户名和密码进行验证。
服务端首先检查接收到的加载指令是否包含了客户端主机的用户名和密码。如果加载指令中缺少这些关键的认证信息,则服务端会判断该数据加载请求无效,并返回异常提示信息给客户端,从而避免未授权的数据访问。相反,如果加载指令中包含了用户名和密码,服务端将利用这些凭据通过SSH协议发起对客户端主机的请求,以拷贝所需的表数据文件。在SSH远程登录过程中,服务端会对提供的用户名和密码进行验证,确保只有合法的用户才能成功发起数据传输。
通过要求用户名和密码的存在,服务端能够确保只有授权用户才能发起远程数据加载请求,降低了数据泄露和未授权访问的风险。同时,SSH协议的使用为数据传输过程提供了加密通道,进一步保护了数据传输过程中的安全。
请参阅图4所示,其为本实施例验证用户名和密码的判定逻辑图;
具体而言,在所述步骤S2中,在对用户名和密码进行验证时,
若用户名或者密码不正确,则返回所述客户端主机发出相对应的异常提示信息;
若用户名密码正确,则通过所述服务端发起SCP命令通过SSH协议将所述客户端主机的表数据文件拷贝到所述服务端的指定目录下的子目录,其中目的目录名为当前远程客户端的会话ID,执行远程拷贝文件时若出现远程目录无权限拷贝的情况,则返回相对应的异常提示信息给所述客户端主机。
在用户名和密码验证环节中,服务端首先对客户端提供的凭据进行核实。如果凭据不正确,服务端将立即向客户端主机发送异常提示信息,明确告知验证失败,从而避免了非法访问或数据泄露的风险。一旦用户名和密码验证成功,服务端便通过SCP命令利用SSH协议安全地将客户端主机上的表数据文件拷贝到服务端指定目录下,该目录以当前远程客户端的会话ID命名,确保了数据的有序性和唯一性。如果在远程拷贝过程中遇到权限问题,服务端同样会向客户端主机返回异常提示信息,以便客户端能够及时了解情况并采取相应措施。
首先,通过用户名和密码的验证机制,确保了只有拥有正确凭据的用户才能访问和传输数据,这大大增强了系统的安全性。其次,使用SSH协议和SCP命令进行数据传输,不仅保证了数据传输过程的安全性,还通过会话ID命名的子目录,提高了数据管理的效率和准确性。此外,对于权限问题的错误提示,有助于快速定位并解决数据传输过程中可能出现的问题。
具体而言,在所述步骤S3中,使用所述服务端检查指定的子目录是否真实存在,
设置有异常捕获次数,使用所述服务端从客户端接收到的加载指令中提取子目录,并根据预设的非法字符集检查子目录是否包含非法字符,在不包含非法字符时,使用所述服务端对子目录进行尝试访问,并在尝试访问预设的访问时长内,捕获任意因权限不足而抛出的异常或错误,并记录捕获次数,对比捕获次数和异常捕获次数,
若捕获次数大于异常捕获次数,使用所述服务端向所述客户端主机发送权限不足的提示信息;
在捕获次数小于等于异常捕获次数时,使用所述服务端查询文件系统,确认子目录是否存在,
若子目录不存在,使用所述服务端向所述客户端主机发送错误提示信息,查看最近使用的文件列表,若文件列表不存在子目录,则重新创建子目录,并使用所述服务端访问重新创建的子目录,若捕获次数大于异常捕获次数,则判定异常捕获次数设置异常,降低调整异常捕获次数,
X’=X×a,其中,X’为调整后的异常捕获次数,X为设置的异常捕获次数,a为调整比例系数。
服务端在执行文件路径检查的过程中,首先会从客户端接收的加载指令中提取子目录。然后,服务端会检查这个路径是否包含任何预设的非法字符,以确保路径的合法性。一旦确认路径格式正确,服务端将尝试访问该路径,并在指定的尝试访问时长内,监控并捕获因权限不足导致的错误或异常。服务端将记录这些异常的发生次数,并将其与预设的异常捕获次数阈值进行比较。如果捕获的异常次数超过了阈值,服务端会向客户端发送权限不足的提示信息,告知用户需要检查文件访问权限。如果捕获的异常次数没有超过阈值,服务端将查询文件系统以确认文件路径是否存在。如果发现路径不存在,服务端将向客户端发送错误提示信息,并检查最近使用的文件列表,以确定文件是否已被移动或重命名。如果文件不在最近使用的列表中,服务端可能会重新创建子目录,并再次尝试访问。如果在重新尝试过程中捕获的异常次数再次超过了阈值,服务端将判断当前的异常捕获次数设置可能过高,并根据预设的调整比例系数a来降低和调整这个阈值,以更准确地反映实际的权限和访问情况。
通过动态捕获和分析访问异常,服务端能够智能地识别和响应文件访问权限问题,从而减少因权限不足导致的服务中断。此外,通过与客户端的通信,用户能够及时获得关于权限问题或文件路径错误的反馈,这有助于用户快速定位并解决问题,提高整个文件加载过程的效率和用户满意度,调整异常捕获次数的机制允许系统根据实际情况自我优化,避免了因固定阈值而导致的过度报错或漏报错,增强了系统的健壮性和适应性。这种方法不仅提高了问题解决的速度,还减轻了系统管理员的负担,使他们能够更专注于其他关键任务。总的来说,这种智能化的异常处理策略显著提升了系统的用户友好性和可靠性。
异常捕获次数是指在尝试访问子目录时,因权限不足或其他原因导致的错误或异常被系统捕获的次数,取决于系统容错性,系统的容错能力越高,可能设置的异常捕获次数就越多,一些系统可能从较低的值开始,例如5次,然后根据实际运行情况进行调整,在本实施例中,异常捕获次数设置为10次,能够防止因偶然的错误而导致用户频繁收到错误提示。
调整比例系数是一个用于调整异常捕获次数的因子,用于在捕获次数超过当前阈值时,按照一定比例增加或减少异常捕获次数,取决于系统稳定性,如果系统运行稳定,调整比例系数可能会设置得较小,通常设置调整比例系数为0.5、1或2,具体取决于需要增加还是减少异常捕获次数,在本实施例中,调整比例系数设置为0.5,能够根据实际情况自动调整异常捕获次数,提高适应性。
预设的时长是指系统在尝试访问子目录时所设定的等待时间,超过这个时间若无法访问则认为访问失败。取决于文件访问的预期时间,根据文件系统的性能和网络条件,预期的文件访问时间会有所不同。预设的时长没有固定值,它需要根据实际的应用场景和上述因素来确定。例如,在网络文件系统NFS或存储区域网络SAN中,可能设置为几秒到几十秒。在本实施例中,预设的时长设置为30秒,能够避免系统长时间等待可能导致的资源浪费。
加载指令为数据加载设置必要的前置条件检查,从而避免了在数据加载过程中可能出现的错误和失败。通过确保文件存在、服务端具有适当的读取权限、Hive表已存在以及分区信息的合法性,服务端能够提前识别并解决潜在的问题,这显著提高了数据加载的成功率和整体流程的效率。
具体而言,在所述步骤S2中,在所述客户端主机名与服务端主机名不同,且,加载指令携带了用户名和密码时,根据加载指令内容,所述服务端生成数据移动任务,所述数据移动任务包括:
若加载指令指定了LOCAL关键字,则先从本地文件系统读取数据并上传到HDFS;
若加载指令未指定LOCAL关键字,则直接从HDFS内部移动数据,将执行计划转化为实际任务,并提交给计算框架执行。
当客户端主机名与服务端主机名不一致,并且加载指令中包含了用户名和密码,服务端会根据加载指令的内容生成相应的数据移动任务。如果加载指令中指定了LOCAL关键字,服务端首先会从本地文件系统读取数据,然后将数据上传到Hadoop分布式文件系统HDFS。相对地,如果加载指令中未指定LOCAL关键字,服务端将直接在HDFS内部进行数据移动,将数据加载的执行计划转换为可执行的任务,并提交给计算框架进行处理。
通过提供灵活的数据加载路径,允许数据根据实际情况从本地文件系统或HDFS直接加载到Hive表中。这种方法不仅优化了数据传输过程,减少了不必要的数据复制,还提高了数据加载的效率。特别是对于大规模数据集,直接在HDFS内部进行数据移动可以显著减少网络传输的开销,从而加快整体的数据加载速度。
具体而言,所述服务端在生成数据移动任务后,将分析数据的大小、源和目标HDFS目录的距离、网络带宽和当前HDFS的负载情况,以生成最优的数据移动任务。
在生成数据移动任务后,服务端会进行一系列的分析工作,以确保数据移动的效率和成功率。具体来说,服务端会考量数据的大小,评估源HDFS目录与目标HDFS目录之间的距离,检查当前网络带宽的状况,以及评估HDFS的当前负载情况。基于这些因素的综合考量,服务端能够生成一个最优的数据移动任务,这个任务旨在最小化数据传输时间,减少网络拥塞,并避免在HDFS高负载时进行数据操作,从而减少对HDFS系统性能的影响。
首先,通过优化数据移动任务,可以显著提高数据传输的效率,尤其是在处理大量数据或跨远距离传输时。其次,对网络带宽和HDFS负载的考量有助于避免网络拥塞和系统过载,确保数据移动不会对其他HDFS操作造成干扰。此外,这种方法还能够平衡系统资源的使用,提高HDFS的整体性能和稳定性。最终,这些优化措施有助于提升数据加载的可靠性,确保数据移动任务的顺利完成,为数据分析和处理提供了坚实的基础。
具体而言,在所述步骤S2中,所述服务端在执行SCP文件传输协议时,将实时监控文件传输的状态,所述监控文件传输的状态包括传输速率、传输进度和所有出现的网络错误,若在传输过程中检测到错误或文件损坏,所述服务端将启动错误恢复机制,所述错误恢复机制包括重新传输文件或向所述客户端主机提供错误日志和提示信息。
服务端在执行SCP文件传输协议时,会持续监控文件传输的状态,这包括实时跟踪传输速率、传输进度,并记录所有可能出现的网络错误。这种细致的监控机制使得服务端能够及时捕捉到任何传输过程中的异常情况。一旦发现错误或文件损坏,服务端将立即启动错误恢复机制,该机制可能包括重新传输文件,或者向客户端主机提供详尽的错误日志和提示信息,以便客户端能够了解问题所在并采取相应的补救措施。
通过实时监控,服务端能够快速响应传输过程中的问题,减少了因未检测到错误而导致的数据丢失或损坏的风险。此外,错误恢复机制的存在确保了即使在出现问题时,也能够及时采取措施,尝试恢复或重新传输文件,从而保证了数据加载过程的连续性和完整性。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种网络化的Hive表数据加载方法,其特征在于,包括:
步骤S1,在Hive客户端主机的配置文件中通过增加服务端参数保存服务端接受Hive客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受所述Hive客户端主机的文件的系统路径;
步骤S2,通过在加载指令前添加Hive客户端主机的用户名和密码修改Hive客户端主机的加载指令的格式,并在Hive客户端主机执行加载指令时,将用户名和密码加密后发送给所述服务端;
步骤S3,在所述服务端接收到修改后的加载指令、加密后的用户名以及密码时,在所述服务端中增加对修改后的加载指令的格式的解析能力,并根据增加解析能力后的服务端解析出用户名和密码,并进行验证,
在验证通过时,执行远程加载流程,所述远程加载流程包括,使用SCP文件传输协议将文件从Hive客户端主机拷贝到所述服务端指定的系统路径下,并创建以所述Hive客户端主机的会话ID命名的子目录,并在文件拷贝完成后,继续执行加载指令的剩余部分,将文件导入到Hive客户端主机中的Hive表中;
在验证未通过时,返回给所述Hive客户端主机相对应的异常提示信息;
步骤S4,对比所述Hive客户端主机名与所述服务端主机名,若所述Hive客户端主机名与所述服务端主机名相同,或,加载指令未携带用户名和密码,则按常规本地load方式处理,直接从本地目录读取数据导入所述Hive表;
在所述步骤S4中,还使用所述服务端尝试访问本地路径,在捕获次数大于预设的异常捕获次数时,使用所述服务端检查指定的本地文件路径是否真实存在,
若所述本地文件路径不存在,使用所述服务端向所述Hive客户端主机发送错误提示信息,并重新创建本地文件路径,并在所述服务端再次访问重新创建的本地文件路径失败时调整异常捕获次数;
步骤S5,在所示Hive客户端主机名与服务端主机名不同时,且加载指令携带了用户名和密码,则使用所述服务端继续执行所述步骤S3中的远程加载流程;
在所述步骤S4中,使用所述服务端检查指定的本地文件路径是否真实存在,
设置有异常捕获次数,使用所述服务端从客户端接收到的加载指令中提取本地文件路径,并根据预设的非法字符集检查本地文件路径是否包含非法字符,在不包含非法字符时,使用所述服务端对本地文件路径进行尝试访问,并在尝试访问预设的访问时长内,捕获任意因权限不足而抛出的异常或错误,并记录捕获次数,对比捕获次数和异常捕获次数,
若捕获次数大于异常捕获次数,使用所述服务端向所述Hive客户端主机发送权限不足的提示信息;
在捕获次数小于等于异常捕获次数时,使用所述服务端查询文件系统,确认本地文件路径是否存在,
若本地文件路径不存在,使用所述服务端向所述Hive客户端主机发送错误提示信息,查看最近使用的文件列表,若文件列表不存在本地文件路径,则重新创建本地文件路径,并使用所述服务端访问重新创建的本地文件路径,若捕获次数大于异常捕获次数,则判定异常捕获次数设置异常,降低调整异常捕获次数,
X’=X×a,其中,X’为调整后的异常捕获次数,X为设置的异常捕获次数,a为调整比例系数。
2.根据权利要求1所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S1中,在Hive客户端主机的配置文件hive-site.xml中通过增加服务端参数hive.server2.loadfile.savedir保存服务端接受Hive客户端主机的文件的系统路径,并使用加载指令指定所述服务端接受所述Hive客户端主机的文件的系统路径为服务端的指定目录下面的子目录,子目录名称为客户端的会话ID。
3.根据权利要求2所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S2中,通过在加载指令前添加Hive客户端主机的用户名和密码修改Hive客户端主机的加载指令的格式,并在Hive客户端主机执行加载指令时,将用户名和密码加密后发送给所述服务端。
4.根据权利要求3所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S3中,在所述服务端接收到加载指令时,通过SQL解析器解析出所述Hive客户端主机的用户名和密码,并对比从当前会话中获取所述Hive客户端主机名和当前的服务端主机名,在所述Hive客户端主机名和当前的服务端的服务端主机名不一致时,判断加载指令是否携带了所述Hive客户端主机的用户名和密码。
5.根据权利要求4所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S3中,在所述客户端主机名和当前的服务端的服务端主机名不一致时,对加载指令进行判定,
若加载指令未携带所述Hive客户端主机的用户名和密码,则判定加载失败,并发出相对应的异常提示信息;
若加载指令携带了所述Hive客户端主机的用户名和密码,则通过所述服务端将用户名和密码发起SSH请求至所述Hive客户端主机进行表数据文件的拷贝,在进行SSH远程登录时,对用户名和密码进行验证。
6.根据权利要求5所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S3中,在对用户名和密码进行验证时,
若用户名或者密码不正确,则返回所述Hive客户端主机发出相对应的异常提示信息;
若用户名密码正确,则通过所述服务端发起SCP命令通过SSH协议将所述Hive客户端主机的表数据文件拷贝到所述服务端的指定目录下的子目录,其中目的目录名为当前远程客户端的会话ID,执行远程拷贝文件时若出现远程目录无权限拷贝的情况,则返回相对应的异常提示信息给所述Hive客户端主机。
7.根据权利要求6所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S5中,在所述Hive客户端主机名与服务端主机名不同,且,加载指令携带了用户名和密码时,根据加载指令内容,所述服务端生成数据移动任务,所述数据移动任务包括:
若加载指令指定了LOCAL关键字,则先从本地文件系统读取数据并上传到HDFS;
若加载指令未指定LOCAL关键字,则直接从HDFS内部移动数据,将执行计划转化为实际任务,并提交给计算框架执行。
8.根据权利要求7所述的网络化的Hive表数据加载方法,其特征在于,所述服务端在生成数据移动任务后,将分析数据的大小、源和目标HDFS目录的距离、网络带宽和当前HDFS的负载情况,以生成最优的数据移动任务。
9.根据权利要求1所述的网络化的Hive表数据加载方法,其特征在于,在所述步骤S3中,所述服务端在执行SCP文件传输协议时,将实时监控文件传输的状态,所述监控文件传输的状态包括传输速率、传输进度和所有出现的网络错误,若在传输过程中检测到错误或文件损坏,所述服务端将启动错误恢复机制,所述错误恢复机制包括重新传输文件或向所述Hive客户端主机提供错误日志和提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410866252.6A CN118410094B (zh) | 2024-07-01 | 2024-07-01 | 一种网络化的Hive表数据加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410866252.6A CN118410094B (zh) | 2024-07-01 | 2024-07-01 | 一种网络化的Hive表数据加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118410094A CN118410094A (zh) | 2024-07-30 |
CN118410094B true CN118410094B (zh) | 2024-09-06 |
Family
ID=92004599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410866252.6A Active CN118410094B (zh) | 2024-07-01 | 2024-07-01 | 一种网络化的Hive表数据加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118410094B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649455A (zh) * | 2016-09-24 | 2017-05-10 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
CN109062551A (zh) * | 2018-08-08 | 2018-12-21 | 青岛大快搜索计算技术股份有限公司 | 基于大数据开发命令集的开发框架 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725703A (zh) * | 2005-06-03 | 2006-01-25 | 南京才华信息技术有限公司 | 网络行为管理方法与系统 |
TWI476610B (zh) * | 2008-04-29 | 2015-03-11 | Maxiscale Inc | 同級間冗餘檔案伺服器系統及方法 |
CN107729366B (zh) * | 2017-09-08 | 2021-01-05 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN117851514A (zh) * | 2023-12-14 | 2024-04-09 | 天翼云科技有限公司 | 一种跨多个Hive集群实现数据和任务容灾方法及系统 |
-
2024
- 2024-07-01 CN CN202410866252.6A patent/CN118410094B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649455A (zh) * | 2016-09-24 | 2017-05-10 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
CN109062551A (zh) * | 2018-08-08 | 2018-12-21 | 青岛大快搜索计算技术股份有限公司 | 基于大数据开发命令集的开发框架 |
Also Published As
Publication number | Publication date |
---|---|
CN118410094A (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693916B2 (en) | Restrictions on use of a key | |
CN103098070B (zh) | 用于监视网络服务中数据位置的方法、装置和系统 | |
US8955059B2 (en) | Authentication system, authentication method, and network storage appliance | |
US12088583B2 (en) | Permissions for backup-related operations | |
US7451209B1 (en) | Improving reliability and availability of a load balanced server | |
CN112838951B (zh) | 一种终端设备的运维方法、装置、系统及存储介质 | |
CN101674285B (zh) | 一种单点登录系统及其方法 | |
CN104219080A (zh) | 一种网站错误页日志记录方法 | |
CN111245791B (zh) | 一种通过反向代理实现管理和it服务的单点登录方法 | |
US10757104B1 (en) | System and method for authentication in a computing system | |
EP1814255B1 (en) | System and method for realizing the security management in 3g mobile communication network | |
CN116015824A (zh) | 一种平台统一认证方法、设备、介质 | |
US20110239275A1 (en) | Centrally Managed Impersonation | |
CN101127645A (zh) | 一种远程网络服务的完整性检验方法 | |
WO2022057002A1 (zh) | 一种异常请求处理方法和装置 | |
CN118410094B (zh) | 一种网络化的Hive表数据加载方法 | |
CN113014592B (zh) | 物联网设备自动注册系统和方法 | |
WO2020231991A1 (en) | Efficient and automatic database patching using elevated privileges | |
CN109165498A (zh) | 一种去中心化式点对点统一认证方法 | |
CN110868397B (zh) | 一种企业异地多点数据交换方法及系统 | |
CN111245803B (zh) | 一种通过浏览器获取计算机设备mac地址的方法 | |
CN110417754B (zh) | 一种基于主机代理服务权限认证的方法及装置 | |
CN113672888A (zh) | 一种云平台的访问方法、装置、系统及云平台服务器 | |
CN117997479B (zh) | 一种数据传输系统、方法、设备及存储介质 | |
KR20200027398A (ko) | 스마트 거래의 보안 안정성 관리 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |