hadoop的mapreduce过程中,map会在文件block所在的datanode执行还是将文件数据传输到空闲datanode执行?

如题所述

job提交后,MRAppMaster会向yarn的ResourceManager申请资源(CPU,内存),MRAppMaster申请到资源后会与资源所在的NodeManager通信,要求其启动任务,NodeManager会为任务配置好环境(环境变量,jar包等),然后运行任务。
至于input会被input split分解成map个数量的独立输入,根据选择主机的算法,到选择的主机上追问

能具体说下选择主机的算法吗?是数据所在的节点优先还是资源占用率低的节点优先?

追答

当一个分片包含的多个block的时候,总会从其他节点读取数据,也就是做不到所有的计算都是本地化。为了发挥计算本地化性能,应该尽量使InputSplit大小与块大小相当

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答