我无法理解Hadoop中的这一陈述 - 权威指南第3版(页31)“有时候,但是,托管地图任务输入拆分的HDFS块复制品的所有三个节点都在运行其他地图任务,因此作业调度程序将在同一个机架中的一个节点上寻找一个免费的地图插槽作为其中一个块。偶尔这是不可能的,因此使用了机架外节点,这导致机架间网络传输。“ ,
我的问题是
1)我无法获得本声明的完整背景
2)这是否意味着如果输入拆分是由其他地图任务说(运行Map任务),它说(等待Map任务)将寻找相同拆分的其他副本?如果“运行地图任务”和“等待地图任务”中的地图逻辑相同,则“等待地图任务”将不使用“运行地图任务”的输出
答案 0 :(得分:0)
正如你可以在同一本书中进一步阅读(我有副本),对带宽存在巨大的担忧。因此,数据节点与映射器任务最接近,将提供更好的性能。
您也可以在同一本书中读到,hadoop本身并不猜测网络拓扑(这样的配置有一章),
关于问题2) 理想情况下,拆分的大小应与HDFS块的大小相同。有时,文件无法拆分(如果检查压缩,您将看到某些压缩算法不允许拆分),因此映射器必须获取多个块。此外,这些块可以分布在多个机架上。