hadoop作业提交者在计算拆分时是否考虑了记录边界?

qc6wkl3g  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(279)

这个问题在这里已经有答案了

hadoop进程记录是如何跨越块边界分割的(6个答案)
6年前关门了。
这个问题不是重复的:hadoop进程记录如何跨越块边界分割?
我有一个关于输入分割计算的问题。根据hadoop指南
1) 输入根据记录边界进行拆分
2) 同时,它还说,拆分是由作业提交者计算的。我假设是在客户端运行的[mapreduce作业运行剖析-经典mrv1]
这是否意味着:
(a) 作业提交者读取块以计算输入拆分?如果是这样的话,它的效率会很低,而且会超出hadoop的目的。

(b) 作业提交者是否只计算仅基于块大小和位置的估计值的拆分,然后它是否成为在mapper下运行的inputformat和recordreader负责跨主机边界获取记录。
谢谢

4ngedf3f

4ngedf3f1#

(a) 作业提交者读取块以计算输入拆分?如果是这样的话,它的效率会很低,而且会超出hadoop的目的。
我不这么认为。作业提交者应该从名称节点读取块的信息,然后只进行计算,这不应该占用太多的计算资源。
(b) 作业提交者是否只计算仅基于块大小和位置的估计值的拆分,然后它是否成为在mapper下运行的inputformat和recordreader负责跨主机边界获取记录。
我不确定提交者的计算有多准确,但分割大小是基于配置的最小和最大分割大小以及块大小使用这个公式计算的
最大(minimumsplitsize,最小(maximumsplitsize,blocksize))
所有这些值都可以由用户设置。例如,最小拆分大小可以是1,最大值可以是最大长值(9223372036854775807)。
正确-输入格式的记录是一个逻辑概念。这意味着作为开发人员,当我们开发map reduce代码时,我们不需要考虑将一个记录分成两个不同的部分的情况。记录读取器负责通过远程读取读取丢失的信息。这可能会导致一些开销,但通常是轻微的。

相关问题