1

cloudera cdh4 で (mahout を使用して) キャノピー クラスター ジョブを実行しています。クラスター化されるコンテンツには、約 1m のレコードがあります (各レコードのサイズは 1k 未満です)。Hadoop 環境全体 (すべてのノードを含む) は、4G メモリを搭載した VM で実行されています。cdh4 のインストールはデフォルトです。ジョブの実行中に次の例外が発生しました。

例外によると、ジョブ クライアントにはより大きな jvm ヒープ サイズが必要なようです。ただし、cloudera マネージャーには jvm ヒープ サイズの構成オプションが多数あります。「Client Java Heap Size in Bytes」を 256MiB から 512MiB に変更しました。ただし、改善しませんでした。

これらのヒープ サイズ オプションの設定に関するヒントはありますか?

13/07/03 17:12:45 INFO input.FileInputFormat: Total input paths to process : 1
13/07/03 17:12:46 INFO mapred.JobClient: Running job: job_201307031710_0001
13/07/03 17:12:47 INFO mapred.JobClient:  map 0% reduce 0%
13/07/03 17:13:06 INFO mapred.JobClient:  map 1% reduce 0%
13/07/03 17:13:27 INFO mapred.JobClient:  map 2% reduce 0%
13/07/03 17:14:01 INFO mapred.JobClient:  map 3% reduce 0%
13/07/03 17:14:50 INFO mapred.JobClient:  map 4% reduce 0%
13/07/03 17:15:50 INFO mapred.JobClient:  map 5% reduce 0%
13/07/03 17:17:06 INFO mapred.JobClient:  map 6% reduce 0%
13/07/03 17:18:44 INFO mapred.JobClient:  map 7% reduce 0%
13/07/03 17:20:24 INFO mapred.JobClient:  map 8% reduce 0%
13/07/03 17:22:20 INFO mapred.JobClient:  map 9% reduce 0%
13/07/03 17:25:00 INFO mapred.JobClient:  map 10% reduce 0%
13/07/03 17:28:08 INFO mapred.JobClient:  map 11% reduce 0%
13/07/03 17:31:46 INFO mapred.JobClient:  map 12% reduce 0%
13/07/03 17:35:57 INFO mapred.JobClient:  map 13% reduce 0%
13/07/03 17:40:52 INFO mapred.JobClient:  map 14% reduce 0%
13/07/03 17:46:55 INFO mapred.JobClient:  map 15% reduce 0%
13/07/03 17:55:02 INFO mapred.JobClient:  map 16% reduce 0%
13/07/03 18:08:42 INFO mapred.JobClient:  map 17% reduce 0%
13/07/03 18:59:11 INFO mapred.JobClient:  map 8% reduce 0%
13/07/03 18:59:13 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000001_0, Status : FAILED
Error: GC overhead limit exceeded
13/07/03 18:59:23 INFO mapred.JobClient:  map 9% reduce 0%
13/07/03 19:00:09 INFO mapred.JobClient:  map 10% reduce 0%
13/07/03 19:01:49 INFO mapred.JobClient:  map 11% reduce 0%
13/07/03 19:04:25 INFO mapred.JobClient:  map 12% reduce 0%
13/07/03 19:07:48 INFO mapred.JobClient:  map 13% reduce 0%
13/07/03 19:12:48 INFO mapred.JobClient:  map 14% reduce 0%
13/07/03 19:19:46 INFO mapred.JobClient:  map 15% reduce 0%
13/07/03 19:29:05 INFO mapred.JobClient:  map 16% reduce 0%
13/07/03 19:43:43 INFO mapred.JobClient:  map 17% reduce 0%
13/07/03 20:49:36 INFO mapred.JobClient:  map 8% reduce 0%
13/07/03 20:49:38 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000001_1, Status : FAILED
Error: GC overhead limit exceeded
13/07/03 20:49:48 INFO mapred.JobClient:  map 9% reduce 0%
13/07/03 20:50:31 INFO mapred.JobClient:  map 10% reduce 0%
13/07/03 20:52:08 INFO mapred.JobClient:  map 11% reduce 0%
13/07/03 20:54:38 INFO mapred.JobClient:  map 12% reduce 0%
13/07/03 20:58:01 INFO mapred.JobClient:  map 13% reduce 0%
13/07/03 21:03:01 INFO mapred.JobClient:  map 14% reduce 0%
13/07/03 21:10:10 INFO mapred.JobClient:  map 15% reduce 0%
13/07/03 21:19:54 INFO mapred.JobClient:  map 16% reduce 0%
13/07/03 21:31:35 INFO mapred.JobClient:  map 8% reduce 0%
13/07/03 21:31:37 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000000_0, Status : FAILED
java.lang.Throwable: Child Error
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:250)
Caused by: java.io.IOException: Task process exit with nonzero status of 65.
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:237)

13/07/03 21:32:09 INFO mapred.JobClient:  map 9% reduce 0%
13/07/03 21:33:31 INFO mapred.JobClient:  map 10% reduce 0%
13/07/03 21:35:42 INFO mapred.JobClient:  map 11% reduce 0%
13/07/03 21:38:41 INFO mapred.JobClient:  map 12% reduce 0%
13/07/03 21:42:27 INFO mapred.JobClient:  map 13% reduce 0%
13/07/03 21:48:20 INFO mapred.JobClient:  map 14% reduce 0%
13/07/03 21:56:12 INFO mapred.JobClient:  map 15% reduce 0%
13/07/03 22:07:20 INFO mapred.JobClient:  map 16% reduce 0%
13/07/03 22:26:36 INFO mapred.JobClient:  map 17% reduce 0%
13/07/03 23:35:30 INFO mapred.JobClient:  map 8% reduce 0%
13/07/03 23:35:32 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000000_1, Status : FAILED
Error: GC overhead limit exceeded
13/07/03 23:35:42 INFO mapred.JobClient:  map 9% reduce 0%
13/07/03 23:36:16 INFO mapred.JobClient:  map 10% reduce 0%
13/07/03 23:38:01 INFO mapred.JobClient:  map 11% reduce 0%
13/07/03 23:40:47 INFO mapred.JobClient:  map 12% reduce 0%
13/07/03 23:44:44 INFO mapred.JobClient:  map 13% reduce 0%
13/07/03 23:50:42 INFO mapred.JobClient:  map 14% reduce 0%
13/07/03 23:58:58 INFO mapred.JobClient:  map 15% reduce 0%
13/07/04 00:10:22 INFO mapred.JobClient:  map 16% reduce 0%
13/07/04 00:21:38 INFO mapred.JobClient:  map 7% reduce 0%
13/07/04 00:21:40 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000001_2, Status : FAILED
java.lang.Throwable: Child Error
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:250)
Caused by: java.io.IOException: Task process exit with nonzero status of 65.
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:237)

13/07/04 00:21:50 INFO mapred.JobClient:  map 8% reduce 0%
13/07/04 00:22:27 INFO mapred.JobClient:  map 9% reduce 0%
13/07/04 00:23:52 INFO mapred.JobClient:  map 10% reduce 0%
13/07/04 00:26:00 INFO mapred.JobClient:  map 11% reduce 0%
13/07/04 00:28:47 INFO mapred.JobClient:  map 12% reduce 0%
13/07/04 00:32:17 INFO mapred.JobClient:  map 13% reduce 0%
13/07/04 00:37:34 INFO mapred.JobClient:  map 14% reduce 0%
13/07/04 00:44:30 INFO mapred.JobClient:  map 15% reduce 0%
13/07/04 00:54:28 INFO mapred.JobClient:  map 16% reduce 0%
13/07/04 01:16:30 INFO mapred.JobClient:  map 17% reduce 0%
13/07/04 01:32:05 INFO mapred.JobClient:  map 8% reduce 0%
13/07/04 01:32:08 INFO mapred.JobClient: Task Id : attempt_201307031710_0001_m_000000_2, Status : FAILED
Error: GC overhead limit exceeded
13/07/04 01:32:21 INFO mapred.JobClient:  map 9% reduce 0%
13/07/04 01:33:26 INFO mapred.JobClient:  map 10% reduce 0%
13/07/04 01:35:37 INFO mapred.JobClient:  map 11% reduce 0%
13/07/04 01:38:48 INFO mapred.JobClient:  map 12% reduce 0%
13/07/04 01:43:06 INFO mapred.JobClient:  map 13% reduce 0%
13/07/04 01:49:58 INFO mapred.JobClient:  map 14% reduce 0%
13/07/04 01:59:07 INFO mapred.JobClient:  map 15% reduce 0%
13/07/04 02:12:00 INFO mapred.JobClient:  map 16% reduce 0%
13/07/04 02:37:56 INFO mapred.JobClient:  map 17% reduce 0%
13/07/04 03:31:55 INFO mapred.JobClient:  map 8% reduce 0%
13/07/04 03:32:00 INFO mapred.JobClient: Job complete: job_201307031710_0001
13/07/04 03:32:00 INFO mapred.JobClient: Counters: 7
13/07/04 03:32:00 INFO mapred.JobClient:   Job Counters 
13/07/04 03:32:00 INFO mapred.JobClient:     Failed map tasks=1
13/07/04 03:32:00 INFO mapred.JobClient:     Launched map tasks=8
13/07/04 03:32:00 INFO mapred.JobClient:     Data-local map tasks=8
13/07/04 03:32:00 INFO mapred.JobClient:     Total time spent by all maps in occupied slots (ms)=11443502
13/07/04 03:32:00 INFO mapred.JobClient:     Total time spent by all reduces in occupied slots (ms)=0
13/07/04 03:32:00 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
13/07/04 03:32:00 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
Exception in thread "main" java.lang.RuntimeException: java.lang.InterruptedException: Canopy Job failed processing vector
4

2 に答える 2

3

Mahout ジョブは非常に多くのメモリを消費します。マッパーとリデューサーのどちらが原因なのかはわかりませんが、どちらにしても、Hadoop に RAM を増やすように指示する必要があります。「GC Overhead Limit Exceeded」は、単に「メモリ不足」という言い方です。これは、JVM が使用可能な RAM の最後の 0.01% を再利用しようとして断念したことを意味します。

いくつかのプロパティがあり、Hadoop 2 で変更されたため、これを設定する方法は少し複雑です。CDH4 は Hadoop 1 または 2 をサポートできます。どちらを使用していますか?

推測する必要がある場合: に設定mapreduce.child.java.opts-Xmx1gます。ただし、正しい答えは、実際にはバージョンとデータによって異なります。

于 2013-10-18T13:37:03.480 に答える
0

Hadoop のメモリ設定を変更する必要があります。Hadoop に割り当てられたメモリは、実行中のジョブ要件に対応するのに十分ではありません。ヒープ メモリを増やして検証してみてください。どのジョブに失敗していますか。

于 2013-10-18T12:17:40.303 に答える