- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Hadoop大数据原理与应用》配套实验指导书 实验3MapReduce编程
编写者:国信蓝桥-颜群 PAGE 12
实验3 MapReduce编程
本实验的知识地图如图3-1所示(表示重点表示难点)。
图3-1 实验3MapReduce编程知识地图
一、实验目的
1. 理解MapReduce编程思想。
2. 理解MapReduce作业执行流程。
3. 理解MR-App编写步骤,掌握使用MapReduce Java API进行MapReduce基本编程,熟练掌握如何在Hadoop集群上运行MR-App并查看运行结果。
4. 熟练掌握MapReduce Web界面的使用。
5. 掌握MapReduce Shell常用命令的使用。
二、实验环境
本实验所需的软件环境包括全分布模式Hadoop集群、Eclipse。
三、实验内容
1. 启动全分布模式Hadoop集群,守护进程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。
2. 在Hadoop集群主节点上搭建MapReduce开发环境Eclipse。
3. 查看Hadoop自带的MR-App单词计数源代码WordCount.java,在Eclipse项目MapReduceExample下建立新包com.xijing.mapreduce,模仿内置的WordCount示例,自己编写一个WordCount程序,最后打包成JAR形式并在Hadoop集群上运行该MR-App,查看运行结果。
4 分别在自编MapReduce程序WordCount运行过程中和运行结束后查看MapReduce Web界面。
5. 分别在自编MapReduce程序WordCount运行过程中和运行结束后练习MapReduce Shell常用命令。
6. 关闭Hadoop集群。
四、实验原理
(一)MapReduce编程思想
MapReduce是Hadoop生态中的一款分布式计算框架,它可以让不熟悉分布式计算的人员也能编写出优秀的分布式系统,因此可以让开发人员将精力专注到业务逻辑本身。
MapReduce采用“分而治之”的核心思想,可以先将一个大型任务拆分成若干个简单的子任务,然后将每个子任务交给一个独立的节点去处理。当所有节点的子任务都处理完毕后,再汇总所有子任务的处理结果,从而形成最终的结果。以“单词统计”为例,如果要统计一个拥有海量单词的词库,就可以先将整个词库拆分成若干个小词库,然后将各个小词库发送给不同的节点去计算,当所有节点将分配给自己的小词库中的单词统计完毕后,再将各个节点的统计结果进行汇总,形成最终的统计结果。以上,“拆分”任务的过程称为Map阶段,“汇总”任务的过程称为Reduce阶段,如图3-2所示。
节点
节点3
海量词库
小词库
小词库
小词库
统计部分单词
统计全部单词
Map阶段
Reduce阶段
节点1
节点2
统计部分单词
节点4
节点5
图3-2 MapReduce执行流程
MapReduce在发展史上经过一次重大改变,旧版MapReduce(MapReduce 1.0)采用的是典型的Master/Slave结构,Master表现为JobTracker进程,而Slave表现为TaskTracker,MapReduce 1.0体系架构如图3-3所示。但是这种架构过于简单,例如Master的任务过于集中,并且存在单点故障等问题。因此,MapReduce进行了一次重要的升级,舍弃JobTracker和TaskTracker,而改用了ResourceManager进程负责处理资源,并且使用ApplicationMaster进程管理各个具体的应用,用NodeManager进程对各个节点的工作情况进行监听。升级后的MapReduce称为MapReduce 2.0,MapReduce 2.0体系架构如图3-4所示。
JobTracker
JobTracker
TaskTracker
Client
Client
TaskScheduler
Map Task
Map Task
Reduce Task
TaskTracker
Map Task
Map Task
Reduce Task
TaskTracker
Map Task
Map Task
Reduce Task
图3-3 MapReduce 1.0体系架构
ResourceManager
ResourceManager
NameNode
NodeManager
ApplicationMaster
DataNode
文档评论(0)