0

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 GB のピーク メモリが使用されていることがわかりました。これは 1536 MB よりはるかに少ない値です。"ps -o vsz=${pid}"「top」と1秒ごとに使用するスクリプトを使用して、ホスト上のジョブのメモリ使用量を確認しました。

誰かがこの問題を理解/デバッグ/修正するのを手伝ってくれませんか?

4

1 に答える 1

0

この問題は、こちらの CDH バージョンで見つけたこのバグに関連している可能性があります。

Hive 動的パーティション分割クエリからの MapReduce タスクが強制終了されます。

問題: Hive スクリプトを使用してパーティション テーブルを動的に作成および設定すると、TaskTracker ログ ファイルに次のエラーが報告されます。

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
于 2014-04-04T09:04:59.707 に答える