[发明专利]基于MapReduce的数据处理方法、客户端和系统在审
申请号: | 201310598175.2 | 申请日: | 2013-11-22 |
公开(公告)号: | CN103617033A | 公开(公告)日: | 2014-03-05 |
发明(设计)人: | 王函;王玮;吴远青;潘腾;郭伟;王旭东 | 申请(专利权)人: | 北京掌阔移动传媒科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100026 北京市朝*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 mapreduce 数据处理 方法 客户端 系统 | ||
技术领域
本发明属于一种基于MapReduce的数据处理方法、客户端和系统。
背景技术
目前主流的大数据处理框架基本都是基于Apache的开源项目Hadoop进行开发,但是由于Hadoop本身所使用的MapReduce框架是基于HDFS定义的文件系统,所以在读取文件的时候对于输入路径有着一定的要求。并且由于MapReduce的处理流程属于顺序处理的流程,无法持续进行迭代的性质也给大数据的处理造成了一定的麻烦。
目前MapReduce架构在读取输入文件夹的时候不支持多个文件夹内容读取,意味着所有的输入文件都必须要在同一个文件夹下。这样对于大部分应用来讲,若需要通过MapReduce来操作数据必须要先将数据预处理到同一个文件夹下,当遇到输入数据量级非常大的时候,预处理的时间则会超过数据正常处理计算的时间,进而导致程序处理效率低。
比如,Mapper类从input split中读取一个个的record,然后依次调用Mapper的map函数,将结果输出。map的输出并不是直接写入硬盘,而是将其写入缓存memory buffer。当buffer中数据的到达一定的大小,一个背景线程将数据开始写入硬盘。在写入硬盘之前,内存中的数据通过partitioner分成多个partition。在同一个partition中,背景线程会将数据按照key在内存中排序。每次从内存向硬盘flush数据,都生成一个新的spill文件。当此task结束之前,所有的spill文件被合并为一个整的被partition的而且排好序的文件。reducer可以通过http协议请求map的输出文件,tracker.http.threads可以设置http服务线程数。
当map task结束后,其通知TaskTracker,TaskTracker通知JobTracker。
对于一个job,JobTracker知道TaskTracer和map输出的对应关系。reducer中一个线程周期性的向JobTracker请求map输出的位置,直到其取得了所有的map输出。reduce task需要其对应的partition的所有的map输出.reduce task中的copy过程即当每个map task结束的时候就开始拷贝输出,因为不同的map task完成时间不同。reduce task中有多个copy线程,可以并行拷贝map输出。当很多map输出拷贝到reduce task后,一个背景线程将其合并为一个大的排好序的文件。当所有的map输出都拷贝到reduce task后,进入sort过程,将所有的map输出合并为大的排好序的文件。最后进入reduce过程,调用reducer的reduce函数,处理排好序的输出的每个key,最后的结果写入HDFS。
由此可见,整个MapReduce的过程是非迭代性质的,属于直线型one-in-one-out的模式,这在处理某些应用场景下,则明显不适用。
发明内容
本发明所要解决的技术问题是提供一种基于MapReduce的数据处理方法,用以在不对多个文件夹进行预处理的情况下直接进行MapReduce计算,从而降低由于预处理给程序处理上带来的压力。
本发明解决上述技术问题所采取的技术方案如下:
一种基于MapReduce的数据处理方法,包括:
客户端查询并获取本次MapReduce计算需要处理的多个文件夹信息,其中,所述多个文件夹中存储着需要处理的数据文件;
遍历所述多个文件夹,根据所述多个文件夹的数据文件生成不同的任务,并依此送入MapReduce中的Map程序中,直至读取完所有的数据文件,并由Map程序依次对所述数据文件进行map计算。
进一步还包括:
获取所述多个文件夹的路径信息,根据所述多个路径信息遍历所述多个文件夹。
所述多个文件夹按照预设的命名规则进行命名,所述Map程序依次遍历所述多个文件夹,包括:
获取文件夹的最小命名和文件夹的最大命名,通过循环调用的依次遍历所述多个文件夹。
还包括:Map程序依次对所述数据文件进行map计算后,输出的结果送入Reduce程序进行reduce计算。
一种基于MapReduce的数据处理客户端,包括:
查询单元,用于查询并获取本次MapReduce计算需要处理的多个文件夹信息,其中,且每一个文件夹中都存储着需要处理的数据文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京掌阔移动传媒科技有限公司,未经北京掌阔移动传媒科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310598175.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种显示插件的方法、装置及终端设备
- 下一篇:一种移动终端及提示方法