一种实现Hadoop文件处理的方法及装置制造方法

文档序号:6546517阅读:168来源:国知局
一种实现Hadoop文件处理的方法及装置制造方法
【专利摘要】本发明公开了一种实现Hadoop文件处理的方法及装置,包括:读取需要处理的分布式文件系统(Hadoop)的文本文件;逐行提取文本文件并转换为映射(Map)规约(Reduce)接受的数据类型的内容;逐行读取转换后的文本文件内容,以确定是否进行断行处理。本发明通过将读取的文本文件直接转换为MapReduce接受的数据类型的内容,逐行的对处理为断行的内容进行确定,节省了预处理过程中删除CR造成的耗时,且不需要额外占用磁盘空间。
【专利说明】一种实现Hadoop文件处理的方法及装置
【技术领域】
[0001]本发明涉及大数据领域,尤指一种实现分布式文件系统(hadoop)文件处理的方法及装置。
【背景技术】
[0002]随着人类社会全面进入信息时代,数据成为与水、石油同等重要的战略资源。通过挖掘海量数据,能够使政府和企业的运行决策建立在更加科学的依据基础上,提高决策效率、危机应对能力和公共服务水平。而大数据或称巨量资料,是指涉及规模巨大的资料量,目前主流软件工具无法对其进行有效的撷取、管理、处理,使其成为帮助企业进行积极经营决策的资讯。
[0003]分布式文件系统(Hadoop)是大数据发展过程中形成的主流处理系统,可是实现对大数据的分析处理。而映射(Map)规约(Reduce)是Hadoop进行数据处理的核心组件之一,通过MapReduce的编程模型,实现大规模数据集的并行运算。MapReduce极大地方便了编程人员在未掌握Hadoop并行编程的情况下,将自己的程序运行在hadoop上。当前软件的实现是通过指定一个映射(Map)函数,把一组键值对映射成一组新的键值对;通过指定并发的规约(Reduce)函数,确定所有映射的键值对中的每一个共享相同的键组。
[0004]通过采用Java语言编写的Hadoop中的MapReduce程序,采取文件的形式在Hadoop中实现输入和输出。Hadoop中缺省提供MapReduce程序所需的输入输出类,通过这些已有的类来处理文件输入输出(文本文件和二进制文件都可),TextInputFormat是处理文本文件时Hadoop缺省使用的工具类,它逐行读取文件内容供MapReduce进行程序处理。在Unix/Linux的应用环境下采用换行符(LF)表示下一行,Dos和Windows采用回车加换行符(CR+LF)表示下一行。而TextInputFormat则会把CR、LF、CR+LF都处理为断行。在Hadoop的数据文件中的字段可能包含有单独的CR字符(主要由于系统噪声等造成的误码);缺省的TextInputFormat在文件处理过程中会错误地把单独的CR字符处理为断行,当把单独的CR字符处理为断行的错误严重时,可能导致MapReduce任务执行失败。
[0005]目前,对缺省的TextInputFormat在文件处理过程中错误地把单独的CR字符处理为断行的问题,主要通过对文件进行预处理,把文件中的CR字符去掉,以重新形成新的文件进行处理。当数据文件中数据量大时则耗时较长,且形成新的文件需要额外占用磁盘空间。

【发明内容】

[0006]为了解决上述技术问题,本发明提供一种实现Hadoop文件处理的方法及装置,能够节省预处理过程中删除CR造成的耗时,避免占用额外的磁盘空间。
[0007]为了达到上述发明目的,本发明公开了一种实现Hadoop文件处理的方法,包括:
[0008]读取需要处理的分布式文件系统Hadoop的文本文件;
[0009]逐行提取文本文件并转换为映射Map规约Reduce接受的数据类型的内容;[0010]逐行读取转换后的文本文件内容,以确定是否进行断行处理。
[0011]进一步地,逐行读取转换后的文本文件内容,以确定是否进行断行处理包括:
[0012]逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符LF时,进行断行;或,
[0013]当文本文件内容的字段中包含回车符CR时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
[0014]一种实现Hadoop文件处理的装置,包括:读取单元、提取转换单元和确定单元;其中,
[0015]读取单元,用于读取需要处理的分布式文件系统Hadoop的文本文件;
[0016]提取转换单元,用于逐行提取文本文件并转换为映射Map规约Reduce接受的数据类型的内容;
[0017]确定单元,用于逐行读取转换后的文本文件内容,以确定是否进行断行处理。
[0018]进一步地,确定单元具体用于:
[0019]逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符LF时,进行断行;或,
[0020]当文本文件内容的字段中包含回车符CR时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
[0021]本申请技术方案包括:读取需要处理的分布式文件系统(Hadoop)的文本文件;逐行提取文本文件并转换为映射(Map)规约(Reduce)接受的数据类型的内容;逐行读取转换后的文本文件内容,以确定是否进行断行处理。本发明通过将读取的文本文件直接转换为MapReduce接受的数据类型的内容,逐行的对处理为断行的内容进行确定,节省了预处理过程中删除CR造成的耗时,且不需要额外占用磁盘空间。
【专利附图】

【附图说明】
[0022]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0023]图1为本发明实现Hadoop文件处理的方法的流程图;
[0024]图2为本发明实现Hadoop文件处理的装置的结构框图。
【具体实施方式】
[0025]图1为本发明实现Hadoop文件处理的方法的流程图,如图1所示,包括:
[0026]步骤100、读取需要处理的分布式文件系统(Hadoop)的文本文件;
[0027]步骤101、逐行提取文本文件并转换为MapReduce接受的数据类型的内容。
[0028]需要说明的是,MapReduce接受的数据类型常见的有字符串型和长整型等常见的数据类型,具体的根据Hadoop的系统设定;转换的方法为本领域熟知的常规的转换方法,为本领域技术人员的惯用技术手段,在此不再赘述。
[0029]步骤102、逐行读取转换后的文本文件内容,以确定是否进行断行处理。
[0030]逐行读取转换后的文本文件内容,以确定是否进行断行处理包括:
[0031]逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符LF时,进行断行;或,
[0032]当文本文件内容的字段中包含回车符CR时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
[0033]本发明不需要对文件进行预处理,省去了预处理数据文件所耗费的时间,提高了Hadoop系统执行处理任务的效率。本发明实现的java类,在继承Hadoop中已有的输入读取的类,拓展相关逻辑并保持相同接口即可实现。
[0034]图2为本发明实现Hadoop文件处理的装置的结构框图,如图2所示,包括:读取单元、提取转换单元和确定单元;其中,
[0035]读取单元,用于读取需要处理的分布式文件系统(Hadoop)的文本文件;
[0036]提取转换单元,用于逐行提取文本文件并转换为MapReduce接受的数据类型的内容;
[0037]确定单元,用于逐行读取转换后的文本文件内容,以确定是否进行断行处理。
[0038]确定单元具体用于:
[0039]逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符(LF)时,进行断行;或,
[0040]当文本文件内容的字段中包含回车符(CR)时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
[0041]虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【权利要求】
1.一种实现Hadoop文件处理的方法,其特征在于,包括: 读取需要处理的分布式文件系统Hadoop的文本文件; 逐行提取文本文件并转换为映射Map规约Reduce接受的数据类型的内容; 逐行读取转换后的文本文件内容,以确定是否进行断行处理。
2.根据权利要求1所述的方法,其特征在于,所述逐行读取转换后的文本文件内容,以确定是否进行断行处理包括: 逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符LF时,进行断行;或, 当文本文件内容的字段中包含回车符CR时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
3.一种实现Hadoop文件处理的装置,其特征在于,包括:读取单元、提取转换单元和确定单元;其中, 读取单元,用于读取需要处理的分布式文件系统Hadoop的文本文件; 提取转换单元,用于逐行提取文本文件并转换为映射Map规约Reduce接受的数据类型的内容; 确定单元,用于逐行读取转换后的文本文件内容,以确定是否进行断行处理。
4.根据权利要求31所述的装置,其特征在于,所述确定单元具体用于: 逐行读取转换后的文本文件内容,当文本文件内容的字段中包含换行符LF时,进行断行;或, 当文本文件内容的字段中包含回车符CR时,进一步判断CR的下一字符是否是LF,如果是,进行断行;否则,不断行。
【文档编号】G06F17/30GK103970874SQ201410203430
【公开日】2014年8月6日 申请日期:2014年5月14日 优先权日:2014年5月14日
【发明者】辛国茂, 赵仁明, 房体盈, 亓开元 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1