我们在hadoop纱线簇中的队列具有以下配置。
Min Resources: <memory:840 GB, vCores:150, disks:15.0>
Max Resources: <memory:1320 GB, vCores:240, disks:25.0>
我提交了一份包含大量输入数据(大小约为1.1 TB)的作业,该作业具有4477 mappers
和10000 reducers
,并具有下面的地图和reduce属性。
mapreduce.map.memory.mb=4096
mapreduce.map.java.opts=-XX:+UseCompressedOops -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xmx3276m
mapreduce.reduce.memory.mb=4096
mapreduce.reduce.java.opts=-XX:+UseCompressedOops -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xmx3276m
这是唯一一个在队列中运行的作业,并且在此作业进行过程中没有其他作业提交。
当作业从mapper阶段开始时,我看到240 cores, 960 GB memory and 22 disks
与1 core for AM and 239 cores for mappers
并行运行。
但是,在减速器阶段开始时,我只看到使用了127 cores, 508 GB memory and 25 disks
和126个并行减速器,这低于我们队列的最小资源。
我的问题是,为什么在减速器阶段仅分配127个内核,为什么在映射器阶段不分配整个240个内核?
我需要了解有关磁盘使用情况的信息吗?