基于hadoop远程超大非结构化文本文件解析出入库系统及方法与流程

文档序号:30078379发布日期:2022-05-18 03:50阅读:144来源:国知局

1.本发明涉及数据库技术领域,具体涉及一种基于hadoop远程超大非结构化文本文件解析出入库系统及方法。
2.

背景技术:

3.常规超大文本远程读取,如果文件略大,则会出现oom问题。如果文本文件大小超过gb、tb等级别,受网络影响,没有一种可靠的方式获得、解析并写入到库中。
4.

技术实现要素:

5.针对现有技术的不足,本发明旨在提供一种基于hadoop远程超大非结构化文本文件解析出入库系统及方法。
6.为了实现上述目的,本发明采用如下技术方案:一种基于hadoop的远程超大非结构化文本文件解析出入库系统,包括文本文件入库模块和规范数据出库模块;文本文件入库模块:用于通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出hadoop文件块,通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除;规范数据出库模块:用于使用spark从hive库中按照分区或全量读取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。
7.本发明还提供一种利用上述系统的方法,具体过程为:进行文本文件入库时,文本文件入库模块通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出hadoop文件块,通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除;当需要导出数据时,规范数据出库模块使用spark从hive库中按照分区或全量读取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。
8.本发明的有益效果在于:相比较传统的文本文件读取到内存,本发明更为稳定,对于系统资源内存、cpu的使用也较为稳定平顺,不会出现内存和cpu飙升的情况,也不会有oom的问题,有利于服务器的稳定运行。
9.具体实施方式
10.以下将对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
11.实施例1本实施例提供一种基于hadoop远程超大非结构化文本文件解析出入库系统,可将诸如txt、csv、json等格式的超大文本文件,从远程文件系统采用ftp或者sftp的方式读取并解析存入hive库。同时本实施例也兼容传统的一般文本文件的读取、解析、入库。所述超大文本文件指的是文件大小达到10gb以上的文本文件。对于超大文本文件,本实施例应用了ftp、sftp以及一些hadoop大数据组件技术spark、yarn、hive等,采用技术整合的方式,成本更为低廉,且贴合hadoop大数据技术,实现较为简单。读取文件和写入存储文件都利用spark和hadoop的架构优势。spark按照文件设定的大小设置分区(partition)数量进行读取,并存入hdfs。spark读取hdfs文件利用了hadoop的文件块机制。因此不论读取文件和写入hive,不会出现oom的问题。
12.具体地,本实施例的一种基于hadoop远程超大非结构化文本文件解析出入库系统,包括文本文件入库模块和规范数据出库模块;文本文件入库模块:用于通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出文件块(hadoop文件块),通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除掉,避免空间的浪费。
13.规范数据出库模块:用于使用spark从hive库中按照分区或全量读取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。
14.实施例2本实施例提供一种利用实施例1所述系统的方法,具体过程为:进行文本文件入库时,文本文件入库模块通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出文件块(hadoop文件块),通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除。
15.当需要导出数据时,规范数据出库模块使用spark从hive库中按照分区或全量读
取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。
16.对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。


技术特征:
1.一种基于hadoop的远程超大非结构化文本文件解析出入库系统,其特征在于,包括文本文件入库模块和规范数据出库模块;文本文件入库模块:用于通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出hadoop文件块,通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除;规范数据出库模块:用于使用spark从hive库中按照分区或全量读取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。2.一种利用权利要求1所述系统的方法,其特征在于,具体过程为:进行文本文件入库时,文本文件入库模块通过文件传输通道ftp/sftp连接文件服务器获取文件的大小属性,如果文本文件的大小未超过设定的阈值,则采用传统的方式,读取到内存中进行处理;如果超过设定的阈值,则采用大文本处理方式,读取到hdfs指定目录,然后利用spark从hdfs中读出hadoop文件块,通过解析、校验、格式化处理后提交到yarn中进行任务的调度,写入到hive库中,写入完成后使用spark将hdfs中对应的文件块删除;当需要导出数据时,规范数据出库模块使用spark从hive库中按照分区或全量读取数据到hdfs中,然后使用spark将hdfs中的文件按照文件块进行解析、校验、格式化处理,其后通过文件传输通道ftp/sftp将文件写入到文件服务器中,完成数据的导出,导出完成后,使用spark将hdfs中的对应文件删除。

技术总结
本发明公开了一种基于hadoop远程超大非结构化文本文件解析出入库系统及方法,可将超大文本文件从远程文件系统采用ftp或者sftp的方式读取并解析存入hive库。同时本发明也兼容传统的一般文本文件的读取、解析、入库。对于超大文本文件,本发明应用了ftp、sftp以及一些hadoop大数据组件技术spark、yarn、hive等,采用技术整合的方式,成本更为低廉,且贴合hadoop大数据技术,实现较为简单。读取文件和写入存储文件都利用spark和hadoop的架构优势,spark按照文件设定的大小设置分区(partition)数量进行读取,并存入HDFS,spark读取HDFS文件利用了hadoop的文件块机制。因此不论读取文件和写入HIVE,不会出现OOM的问题。不会出现OOM的问题。


技术研发人员:于洋 高经郡 谢晋
受保护的技术使用者:北京科杰科技有限公司
技术研发日:2022.02.22
技术公布日:2022/5/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1