我准备参加考试,这是讲义中的一个问题:
Why Map tasks outputs are written to the local disk and not to HDFS?
Run Code Online (Sandbox Code Playgroud)
这是我的想法:
还有什么其他可能的原因?我的答案合理吗?
你的推理是正确的.
但是我想补充几点:如果将地图输出写入hdfs会怎样.
现在,写入hdfs与写入本地磁盘不同.这是一个更复杂的进程,namenode确保至少将dfs.replication.min副本写入hdfs.并且namenode还将运行后台线程以为下复制的块创建其他副本.
假设,用户在两者之间杀死作业或者作业失败.hdfs上会有很多中间文件无缘无故你必须手动删除.如果此过程发生的次数过多,则您的群集会执行并会降级.Hdfs针对追加而非频繁删除进行了优化.
此外,在映射阶段,如果作业失败,它会在退出之前执行清理.如果它是hdfs,则删除过程将要求namenode将块删除消息发送到适当的数据节点,这将导致该块的失效并将其从中移除blocksMap.如此多的操作只涉及清理失败而无法获得!
| 归档时间: |
|
| 查看次数: |
3719 次 |
| 最近记录: |