大数据开发的MapReduce的编程怎么弄?5步解决
很多人都是一看就会,一做就废眼睛:我会了,我们开始吧!手:你会了我还没会呢!在之前的Hadoop是什么中已经说过MapReduce采用了分而治之的思想,MapReduce主要分为两部分,一部分是Map分,一部分是Reduce合,那么MapReduce的编程该怎么弄呢?下面5个步骤告诉你!
一、概念复习!
(1)客户端(Client):编写mapreduce程序,配置作业,提交作业,这就是程序员完成的工作
(2)JobTracker:JobTracker是一个后台服务进程,启动之后,会一直监听并接收来自各个TaskTracker发送的心跳信息,包括资源使用情况和任务运行情况等信息。
1。作业控制:在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任务,2。JobTracker的作业控制模块则负责作业的分解和状态监控。
状态监控:主要包括TaskTracker状态监控、作业状态监控和任务状态监控。主要作用:容错和为任务调度提供决策依据。
3。JobTracker只有一个,他负责了任务的信息采集整理,你就把它当做包工头把,这个和采用MasterSlave结构中的Master保持一致
4。JobTracker对应于NameNode
5。一般情况应该把JobTracker部署在单独的机器上
(3)TaskTracker:TaskTracker是JobTracker和Task之间的桥梁。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信。
1。从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等
2。将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker,节点健康情况、资源使用情况,任务执行进度、任务运行状态等,比如说maptask我做完啦,你什么时候让reducetask过来拉数据啊
3。TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。
4。TaskTracker都需要运行在HDFS的DataNode上
(4)HDFS:保存作业的数据、配置信息等等,最后的结果也是保存在hdfs上面
1。NameNode:管理文件目录结构,接受用户的操作请求,管理数据节点(DataNode)
2。DataNode:是HDFS中真正存储数据的
3。Block:是hdfs读写数据的基本单位,默认64MB大小,就是说如果你有130MB数据,那就要分成三个block,两个存放64MB,最后一个存放2MB数据,虽然最后一个block块是64MB,但实际上占用空间为2MB
4。SencondaryNameNode:它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间,在文件系统中设置一个检查点来帮助NameNode更好的工作。它不是要取代掉NameNode也不是NameNode的备份。
认真复习了吗?复习好了吗?接下来就开始动手操作吧!
二、五步走!
整个MapReduce程序,所有数据以(key,value)形式流动
第一步:input
正常情况下不需要写代码
仅仅在MapReduce程序运行的时候指定一个路径即可
第二步:map(核心)
map(key,value,output,context)
key:每行数据的偏移量基本没用
value:每行数据的内容真正需要处理的内容
第三步:shuffle
不需要写代码
第四步:reduce(核心)
reduce(key,value,output,context)
key:业务需求中的key
value:要聚合的值
第五步:output
正常情况下不需要写代码
仅仅在MapReduce程序运行的时候指定一个路径即可
比想象的要简单许多吧,只要多动手练习一下,这些都不难,如果一次没成功,那就再练习一次。
本期的内容就是这些了,要多加练习,一遍一遍的敲代码,然后运行。光靠眼睛会了还不行,手也得会!大数据开发之路,期待你的成长!
希望大家点个关注,及时收取最新文章推送,想了解更多敬请咨询加米谷大数据。
有问题的欢迎在评论区留言,如有侵权请告知。