2012-04-13 3 views
0

Я запускаю работу Hadoop. Эта работа завершается с ошибкой:Недостаток памяти Hadoop превышен

"TaskTree [pid=13549,tipID=attempt_201202130706_121058_m_000000_0] is running beyond memory-limits. Current usage : 1667149824bytes. Limit : 1610612736bytes. Killing task." 

Для этой работы, mapred.job.map.memory.mb установлен в 1536. Установка этого 1536*2 = 3072 помогает, но вызывает задачу 1 карту использовать 2 слота, которые не желателен ,

Когда я запустил это задание на хосте, я обнаружил, что он использует максимальную память объемом 1,07 ГБ, что меньше, чем 1536 МБ. Я проверил использование памяти на хосте с использованием «top» и скрипта, который использует "ps -o vsz=${pid}" каждые 1 секунду.

Может кто-нибудь, пожалуйста, помогите мне понять/отладить/исправить эту проблему.

+0

Похож на YARN, какую версию Hadoop вы используете? –

+0

$ hadoop версия Hadoop 0.20.205.0.3.1112071329 ... – sunillp

+0

sunillp, проверьте это из stackoverflow, [link] http://stackoverflow.com/questions/8017500/specifying-memory-limits-with-hadoop –

ответ

0

Эта проблема может быть связана с этой ошибкой я нашел на CDH версии here:

MapReduce task from Hive dynamic partitioning query is killed.

Problem: When using the Hive script to create and populate the partitioned table dynamically, the following error is reported in the TaskTracker log file:

TaskTree [pid=30275,tipID=attempt_201305041854_0350_m_000000_0] is running beyond memory-limits. Current usage : 1619562496bytes. Limit : 1610612736bytes. Killing task. 

Вы должны отключить параметры памяти в mapred-site.xml:

mapred.cluster.map.memory.mb = -1 
mapred.cluster.reduce.memory.mb = -1 
mapred.job.map.memory.mb = -1 
mapred.job.reduce.memory.mb = -1 
mapred.cluster.max.map.memory.mb = -1 
mapred.cluster.max.reduce.memory.mb = -1 
Смежные вопросы