gpt4 book ai didi

hadoop - 为什么 Map 任务输出写入到本地磁盘而不是 HDFS?

转载 作者:可可西里 更新时间:2023-11-01 14:26:07 25 4
gpt4 key购买 nike

我正在准备考试,这是讲义中的一个问题:

Why Map tasks outputs are written to the local disk and not to HDFS?

这是我的想法:

  • 减少网络流量的使用,因为 reducer 可能与输出在同一台机器上运行,因此不需要复制。
  • 不需要 HDFS 的容错能力。如果作业中途终止,我们总是可以重新运行 map task 。

还有哪些可能的原因?我的回答合理吗?

最佳答案

你的推理是正确的。
但是我想补充几点:如果 map 输出写入hdfs会怎么样。
现在,写入hdfs不像写入本地磁盘。这是一个更复杂的过程,namenode 确保至少将 dfs.replication.min 副本写入 hdfs。并且 namenode 还将运行一个后台线程来为未复制的 block 制作额外的副本。
假设,用户在中间杀死了作业或者作业刚刚失败。会有很多中间文件无缘无故地坐在 hdfs 上,您必须手动删除这些文件。如果这个过程发生太多次,你的集群的性能就会下降。 Hdfs 针对追加和不频繁删除进行了优化
此外,在映射阶段,如果作业失败,它会在退出前执行清理。如果是 hdfs,删除过程将需要 namenode 向适当的数据节点发送 block 删除消息,这将导致该 block 失效并从 blocksMap 中删除。如此多的操作只是为了清理失败而没有任何收获!!

关于hadoop - 为什么 Map 任务输出写入到本地磁盘而不是 HDFS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578418/

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