我知道datalocalization
仅适用于mapper阶段,这意味着它将mapper的输出保存在temp
[在本地文件系统的mapred-site.xml
中配置]文件夹中,以便处理网络故障。
但是此过程[datalocalization
]不适用于reducer phase
,这意味着reducer的输出未保存在本地文件系统[LFS]中,为什么不要求将reducer的输出存储到LFS?
最佳答案
在MapReduce
的映射器阶段,输出[part-m-xxxx]
将存储在本地文件系统中,以避免任何与网络相关的问题,这被称为datalocalization
。
但是reducer的输出未存储在本地文件系统中,原因是:
使用
RPC
从worker /数据节点中获取。 [part-r-xxxx]
成功,则它是最终输出,因此将最终输出也存储在
本地文件系统,浪费磁盘存储空间。
关于hadoop - 为什么数据本地化不适用于Map Reduce流程中的排序和混洗阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030238/