gpt4 book ai didi

hadoop - hadoop 中的作业客户端如何计算 inputSplits

转载 作者:可可西里 更新时间:2023-11-01 16:17:48 25 4
gpt4 key购买 nike

我正在尝试深入了解 map reduce 架构。我正在咨询这个http://answers.oreilly.com/topic/2141-how-mapreduce-works-with-hadoop/文章。我对 mapreduce 框架的组件 JobClient 有一些疑问。我的问题是:

JObClient 如何计算数据的输入拆分?

根据我正在咨询的内容,作业客户端计算运行作业时指定的 HDFS 上输入路径中的数据的输入拆分。文章说 Job Client 将资源( jar 和计算输入拆分)复制到 HDFS。现在这是我的问题,当输入数据在 HDFS 中时,为什么 jobClient 将计算的输入拆分复制到 HDFS 中。

假设 Job Client 将输入拆分复制到 HDFS,现在当 JOb 提交给 Job Tracker 并且 Job Tracker 将作业具体化时,为什么它从 HDFS 检索输入拆分?

如果我的问题不清楚,我们深表歉意。我是初学者。 :)

最佳答案

不,JobClient 不会将输入拆分复制到 HDFS。您已经为自己引用了您的答案:

Job Client computes input splits on the data located in the input path on the HDFS specified while running the job. the article says then Job Client copies the resources(jars and computed input splits) to the HDFS.

输入本身依赖于集群。客户端仅计算从名称节点获得的元信息( block 大小、数据长度、 block 位置)。这些 computed 输入拆分将元信息传递给任务,例如 block 偏移量和要计算的长度。

看看 org.apache.hadoop.mapreduce.lib.input.FileSplit,它包含文件路径、起始偏移量和单个任务将对其进行操作的 block 的长度输入。您可能还想查看的可序列化类是:org.apache.hadoop.mapreduce.split.JobSplit.SplitMetaInfo

将为将要运行的每个任务计算此元信息,并与 jars 一起复制到将实际执行此任务的节点。

关于hadoop - hadoop 中的作业客户端如何计算 inputSplits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com