加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

从HDFS和MapReduce两方面相识Hadoop

发布时间:2019-03-22 17:06:43 所属栏目:教程 来源:佚名
导读:简介 Hadoop 是一个可以或许对大量数据举办漫衍式处理赏罚的软件框架,框架最焦点的计划就是:HDFS 和 MapReduce。HDFS 为海量的数据提供了存储,而 MapReduce 则为海量的数据提供了计较。这篇文章就首要从 HDFS 和 MapReuce 两个大的方面睁开对 Hadoop 讲授,虽然

打包功课,我们必要将我们的 MapReduce 措施打成 jar 包。

  • 清单 17. 打包功课
  1. mvn package -Dmaven.test.skip=true 

将 jar 包复制到 hadoop 呆板上。

在 HDFS 上筹备好要统计的文件,我筹备的文件在 HDFS 上的/mr/input/目次下,内容为"hello hadoop hdfs.I am coming."。

执行 jar。

  • 清单 18. 执行功课
  1. hadoop jar mr-test-1.0-SNAPSHOT.jar cn.itweknow.mr.CharCountDriver /mr/input/ /mr/output/out.txt 

查察功效。

我们先看看输出目次,功效如下,最终输出的功效就存放在/mr/output/part-r-00000 文件中。

图 1. MapReduce 功课输出目次

从HDFS和MapReduce两方面相识Hadoop

然后我们再看看输出文件中的详细内容,如下所示:

图 2. MapReduce 功课输出功效

MapReduce 运行道理

我们可以将一个 MapReduce 功课的运行进程简朴的拆分成 6 个进程,别离是功课的提交、功课初始化、使命分派、使命执行、进度和状态的更新、功课完成。下面我就一路来详细相识下这么几个步调。

功课的提交

当我们挪用 job.submit()可能 job.waitForCompletion()要领(其内部也会挪用 submit()要领)的时辰,会建设一个 JobSubmitter 工具,在 JobSubmitter 内部所实现的功课提交进程如下:

  1. 向资源打点器哀求新的应用 ID 作为 MapReduce 功课的功课 ID。
  2. 搜查功课的输出目次,假如没有指定输出目次可能输出目次已经存在就会抛堕落误,这也就是为啥我们在执行 MapReduce 功课时为啥必要担保指定的输出目次不存在。
  3. 将功课运行所必要的资源文件(功课 JAR 包,设置文件,输入分片)复制到一路(一个以功课 ID 定名的目次下)。
  4. 挪用 submitApplication()要领提交功课。​

功课的初始化

  1. 起首资源打点器会将功课哀求转达给 YARN 调治器。
  2. 调治器会为功课分派一个容器。
  3. 资源打点器在节点打点器的打点下在容器中启动 application master。
  4. application master 的主类 MRAppMaster 会建设多个簿记工具来跟踪功课的进度。
  5. 吸取输入分片。
  6. application master 为每个分片建设 map 使命以及确定 reduce 使命,而且分派使命 ID。

使命的分派

application master 会为建设的使命向资源打点器哀求容器,先是为 map 使命哀求资源,后为 reduce 使命哀求资源。为 map 使命分派资源的时辰必要思量到数据当地化的范围,会只管担保运行的 map 使命所必要的数据块存储在当前呆板可能当前机架中,这样会极大的节减带宽资源。而 reduce 使命则不存在这个限定。

使命的执行

  1. 资源打点器为使命分派好容器后,application master 就通过与节点打点器通讯启动容器。
  2. 在运利用命之前,会将使命所必要的资源当地化。
  3. 运利用命。

进度和状态的更新

使命在运行的进程中,会对其精度保持追踪,对与 map 使命,其使命进度就是已经处理赏罚的输入所占总输入的比例。对与 reduce 使命来讲就较量伟大了,由于这个部门包括资源复制阶段、排序阶段和 reduce 阶段三个阶段,每个阶段都占整个完成比例的 1/3,也就是说当我们完成 reduce 的一半的时辰进度应该为 5/6。对与状态的更新,客户端会每秒轮询一次 application master 以吸取最新的使命状态。

功课的完成

当 application master 收到功课最后一个使命已经完成的关照后,便把功课的状态配置为"乐成"。

为了利便各人领略,我这里将整个进程总结为一张图,贴在这里仅供各人参考。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读