无法为任务 attemptId NNN 解除分配容器
Could not deallocate container for task attemptId NNN
我正在尝试了解容器如何在 YARN 中分配内存以及它们基于不同硬件配置的性能。
所以,机器有 30 GB RAM,我为 YARN 选择了 24 GB,为系统留了 6 GB。
yarn.nodemanager.resource.memory-mb=24576
然后我跟着 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html 想出了一些 Map & Reduce 任务内存值。
我将这两个保留为默认值:
mapreduce.map.memory.mb
mapreduce.map.java.opts
但是我改变了这两个配置:
mapreduce.reduce.memory.mb=20480
mapreduce.reduce.java.opts=Xmx16384m
但是当我使用该设置放置作业时,出现错误并且作业被强制终止:
2015-03-10 17:18:18,019 ERROR [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Could not deallocate container for task attemptId attempt_1426006703004_0004_r_000000_0
到目前为止唯一对我有用的值是设置 reducer 内存 <= 12 GB,但这是为什么呢?为什么我不能分配更多内存或最多 (2 * RAM-per-container?
那么我在这里缺少什么?在设置这些值以获得更好的性能时,我还需要考虑什么吗?
通过更改 yarn.scheduler.maximum-allocation-mb 值解决了这个问题。在 YARN 中,作业使用的内存不得超过服务器端配置 yarn.scheduler.maximum-allocation-mb。虽然我设置了 yarn.nodemanager.resource.memory-mb 的值,但它也应该反映最大分配大小。所以在更新最大分配后,作业按预期工作:
yarn.nodemanager.resource.memory-mb=24576
yarn.scheduler.maximum-allocation-mb=24576
我正在尝试了解容器如何在 YARN 中分配内存以及它们基于不同硬件配置的性能。
所以,机器有 30 GB RAM,我为 YARN 选择了 24 GB,为系统留了 6 GB。
yarn.nodemanager.resource.memory-mb=24576
然后我跟着 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html 想出了一些 Map & Reduce 任务内存值。
我将这两个保留为默认值:
mapreduce.map.memory.mb
mapreduce.map.java.opts
但是我改变了这两个配置:
mapreduce.reduce.memory.mb=20480
mapreduce.reduce.java.opts=Xmx16384m
但是当我使用该设置放置作业时,出现错误并且作业被强制终止:
2015-03-10 17:18:18,019 ERROR [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Could not deallocate container for task attemptId attempt_1426006703004_0004_r_000000_0
到目前为止唯一对我有用的值是设置 reducer 内存 <= 12 GB,但这是为什么呢?为什么我不能分配更多内存或最多 (2 * RAM-per-container?
那么我在这里缺少什么?在设置这些值以获得更好的性能时,我还需要考虑什么吗?
通过更改 yarn.scheduler.maximum-allocation-mb 值解决了这个问题。在 YARN 中,作业使用的内存不得超过服务器端配置 yarn.scheduler.maximum-allocation-mb。虽然我设置了 yarn.nodemanager.resource.memory-mb 的值,但它也应该反映最大分配大小。所以在更新最大分配后,作业按预期工作:
yarn.nodemanager.resource.memory-mb=24576
yarn.scheduler.maximum-allocation-mb=24576