《Hadoop大数据原理与应用实验教程》(徐鲁辉)实验指导书 实验3MapReduce编程.docxVIP

《Hadoop大数据原理与应用实验教程》(徐鲁辉)实验指导书 实验3MapReduce编程.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档