hadoop - 为什么数据本地化不适用于Map Reduce流程中的排序和混洗阶段?

标签 hadoop mapreduce hadoop2

我知道datalocalization仅适用于mapper阶段,这意味着它将mapper的输出保存在temp [在本地文件系统的mapred-site.xml中配置]文件夹中,以便处理网络故障。

但是此过程[datalocalization]不适用于reducer phase,这意味着reducer的输出未保存在本地文件系统[LFS]中,为什么不要求将reducer的输出存储到LFS?

最佳答案

MapReduce的映射器阶段,输出[part-m-xxxx]将存储在本地文件系统中,以避免任何与网络相关的问题,这被称为datalocalization

但是reducer的输出未存储在本地文件系统中,原因是:

  • 即使在reducer阶段出错,它也会获取数据
    使用RPC从worker /数据节点中获取。
  • 如果reducer阶段[part-r-xxxx]成功,则它是最终输出,
    因此将最终输出也存储在
    本地文件系统,浪费磁盘存储空间。
  • 关于hadoop - 为什么数据本地化不适用于Map Reduce流程中的排序和混洗阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030238/

    相关文章:

    java - hadoop-yarn-server-nodemanager 上的 Hadoop 2.6.0 Maven 编译错误

    hadoop - 我可以在Hive外部表中创建存储桶吗?

    java - 既然可以在map()或reduce()中初始化参数,为什么还需要MapReduce中的setup()方法呢?

    hadoop - 使用 mapreduce 程序清理数据

    Hadoop 路径不能为空

    java - hadoop中所有的slave和master需要有相同的用户名吗?

    sql-server - hive "\n"记录中的值

    hadoop - MR工作中处理字节数组的最佳方法

    RHadoop:所需的 REDUCE 能力超过集群中支持的最大容器能力

    sockets - 运行 start-dfs.sh 时权限被拒绝错误