从HDFS和MapReduce两方面相识Hadoop
打包功课,我们必要将我们的 MapReduce 措施打成 jar 包。
将 jar 包复制到 hadoop 呆板上。 在 HDFS 上筹备好要统计的文件,我筹备的文件在 HDFS 上的/mr/input/目次下,内容为"hello hadoop hdfs.I am coming."。 执行 jar。
查察功效。 我们先看看输出目次,功效如下,最终输出的功效就存放在/mr/output/part-r-00000 文件中。 图 1. MapReduce 功课输出目次 然后我们再看看输出文件中的详细内容,如下所示: 图 2. MapReduce 功课输出功效 MapReduce 运行道理 我们可以将一个 MapReduce 功课的运行进程简朴的拆分成 6 个进程,别离是功课的提交、功课初始化、使命分派、使命执行、进度和状态的更新、功课完成。下面我就一路来详细相识下这么几个步调。 功课的提交 当我们挪用 job.submit()可能 job.waitForCompletion()要领(其内部也会挪用 submit()要领)的时辰,会建设一个 JobSubmitter 工具,在 JobSubmitter 内部所实现的功课提交进程如下:
功课的初始化
使命的分派 application master 会为建设的使命向资源打点器哀求容器,先是为 map 使命哀求资源,后为 reduce 使命哀求资源。为 map 使命分派资源的时辰必要思量到数据当地化的范围,会只管担保运行的 map 使命所必要的数据块存储在当前呆板可能当前机架中,这样会极大的节减带宽资源。而 reduce 使命则不存在这个限定。 使命的执行
进度和状态的更新 使命在运行的进程中,会对其精度保持追踪,对与 map 使命,其使命进度就是已经处理赏罚的输入所占总输入的比例。对与 reduce 使命来讲就较量伟大了,由于这个部门包括资源复制阶段、排序阶段和 reduce 阶段三个阶段,每个阶段都占整个完成比例的 1/3,也就是说当我们完成 reduce 的一半的时辰进度应该为 5/6。对与状态的更新,客户端会每秒轮询一次 application master 以吸取最新的使命状态。 功课的完成 当 application master 收到功课最后一个使命已经完成的关照后,便把功课的状态配置为"乐成"。 为了利便各人领略,我这里将整个进程总结为一张图,贴在这里仅供各人参考。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |