hadoop jar命令执行

标签 hadoop jar

  1. 我们通过hadoop jar命令提交jar文件
  2. 它命中主节点

hadoop jar 命令是否会将 jar 文件复制到所有从节点并开始执行,或者它是如何工作的,谁来做?作业跟踪器或名称节点?

最佳答案

“hadoop jar”命令通过提供 jarfile、输入路径、输出路径告诉 hadoop 在集群中执行作业。 jar 文件包含作业配置以及所有 Map 和 Reduce 代码。

步骤:

  1. 工作客户将工作提交给 JobTracker (JT)。在后台,它将包含 Config、Mapper 和 Reducer 代码、输入和输出路径信息的二进制文件复制到靠近任务跟踪器 (TT) 的集中区域中的 HDFS。一旦 TT 需要使用该代码,他们只需将其下载到本地数据节点上,以便当 Map 和 Reduce 任务启动时,他们使用该代码在本地数据上运行。

  2. JT 向 NameNode 查询包含数据的数据位置和数据节点名称。

  3. 根据这些信息,JT 与 TT 对话并通过考虑最接近数据的 TTS(如果它们有可用的执行槽)来创建执行计划。如果它们不是,那么它会进入机架位置并找到同一机架中的任何 TT 都有可用插槽。如果还是找不到,那就在任意机架/任意位置找TT。

  4. 根据执行计划,JT 将工作提交给 TT。 TT 现在支持 Map 和 Reduce 任务并在数据上执行。

  5. TT 定期向 JT 报告进度和心跳(默认为每 5 秒一次)。每个 Map 和 Reduce 任务都通过 TT 向 JT 报告它们的进度/完成/错误。即 Mapper 和 Reducer 任务向 TT 报告,TT 向 JT 报告。如果 MR 任务终止,那么 TT 会将此报告给 JT,JT 启动其他 MR 任务来处理错误。

  6. 一旦所有映射器都完成了他们的任务,JT 就会向 TT 发出信号,告诉 Reducers 运行他们的 reducer 执行(即运行 reduce() 方法)

  7. 一旦所有 Mappers 和 Reducers 完成并写入最终输出,JT 将其状态更新为 SUCCESS 并通知客户端。

关于hadoop jar命令执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269053/

相关文章:

java - 如何在不更改代码的情况下动态拦截 jar 中的方法?

hadoop - 命令 'hadoop jar' 不采用 -Dfile.encoding=UTF-8?

hadoop - PIG 拉丁语 : Output Path based on Field Value

java - 使用one-jar构建一个jar文件

java - eclipse 充气城堡 jar 来自哪里

java - 使用同一库的 2 个版本

java - Hbase 中的 addImmutable 和 addColumn 有什么区别?

scala - scala中的HDFS文件列表

apache - 使用Apache Ambari的Hadoop集群部署

java - 如何更改Unity Android插件包名称