MapReduce编程之WordCount

打印 上一主题 下一主题

主题 1622|帖子 1622|积分 4866

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、MapReduce编程原理

MapReduce是一种盘算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将效果合并成最终效果(REDUCE)。这样做的利益是可以在任务被分解后,可以通过大量机器举行并行盘算,淘汰整个操纵的时间。
实用范围:数据量大,但是数据种类小可以放入内存。
根本原理及要点:将数据交给不同的机器去处理,数据划分,效果归约。
理解MapReduce和Yarn:在新版Hadoop中,Yarn作为一个资源管理调度框架,是Hadoop下MapReduce程序运行的生存环境。着实MapRuduce除了可以运行Yarn框架下,也可以运行在诸如Mesos,Corona之类的调度框架上,使用不同的调度框架,必要针对Hadoop做不同的适配。
一个完成的MapReduce程序在Yarn中执行过程如下:
(1)ResourcManager JobClient向ResourcManager提交一个job。
(2)ResourcManager向Scheduler请求一个供MRAppMaster运行的container,然后启动它。
(3)MRAppMaster启动起来后向ResourcManager注册。
(4)ResourcManagerJobClient向ResourcManager获取到MRAppMaster相关的信息,然后直接与MRAppMaster举行通讯。
(5)MRAppMaster算splits并为全部的map构造资源请求。
(6)MRAppMaster做一些须要的MR OutputCommitter的预备工作。
(7)MRAppMaster向RM(Scheduler)发起资源请求,得到一组供map/reduce task运行的container,然后与NodeManager一起对每一个container执行一些须要的任务,包括资源本地化等。
(8)MRAppMaster 监督运行着的task 直到完成,当task失败时,申请新的container运行失败的task。
(9)当每个map/reduce task完成后,MRAppMaster运行MR OutputCommitter的cleanup 代码,也就是举行一些收尾工作。
(10)当全部的map/reduce完成后,MRAppMaster运行OutputCommitter的须要的job commit或者abort APIs。
(11)MRAppMaster退出。
MapReduce编程

编写在Hadoop中依靠Yarn框架执行的MapReduce程序,并不必要自己开辟MRAppMaster和YARNRunner,由于Hadoop已经默认提供通用的YARNRunner和MRAppMaster程序, 大部分环境下只必要编写相应的Map处理和Reduce处理过程的业务程序即可。
编写一个MapReduce程序并不复杂,关键点在于掌握分布式的编程头脑和方法,主要将盘算过程分为以下五个步骤:
(1)迭代。遍历输入数据,并将之解析成key/value对。
(2)将输入key/value对映射(map)成别的一些key/value对。
(3)依据key对中间数据举行分组(grouping)。
(4)以组为单位对数据举行归约(reduce)。
(5)迭代。将最终产生的key/value对保存到输出文件中。
Java API解析

(1)InputFormat:用于描述输入数据的格式&

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表