«Дочерняя ошибка» в выполнении потокового задания на многоузловом кластере Hadoop (распределение cloudera CDH3u0 Hadoop 0.20.2) - PullRequest
3 голосов
/ 15 июля 2011

Я работаю на кластере Hadoop с 8 узлами и пытаюсь выполнить простое потоковое задание с указанной конфигурацией.

hadoop jar /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u0.jar \-D mapred.map.max.tacker.failures=10 \-D mared.map.max.attempts=8 \-D mapred.skip.attempts.to.start.skipping=8 \-D mapred.skip.map.max.skip.records=8 \-D mapred.skip.mode.enabled=true \-D mapred.max.map.failures.percent=5  \-input /user/hdfs/ABC/ \-output "/user/hdfs/output1/" \-mapper "perl -e 'while (<>) { chomp; print; }; exit;" \-reducer "perl -e 'while (<>) { ~s/LR\>/LR\>\n/g; print ; }; exit;" 

Я использую дистрибутив cloudera для hadoop CDH3u0 с hadoop 0.20.2. Проблема в выполнении этого задания заключается в том, что задание каждый раз терпит неудачу. Задание выдает ошибку:

 java.lang.Throwable: Child Error
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:242)
Caused by: java.io.IOException: Task process exit with nonzero status of 1.
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:229)

-------
java.lang.Throwable: Child Error
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:242)
Caused by: java.io.IOException: Task process exit with nonzero status of 1.
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:229)

 STDERR on the datanodes: 
    Exception in thread "main" java.io.IOException: Exception reading file:/mnt/hdfs/06/local/taskTracker/hdfs/jobcache/job_201107141446_0001/jobToken
    at org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:146)
    at org.apache.hadoop.mapreduce.security.TokenCache.loadTokens(TokenCache.java:159)
    at org.apache.hadoop.mapred.Child.main(Child.java:107)
Caused by: java.io.FileNotFoundException: File file:/mnt/hdfs/06/local/taskTracker/hdfs/jobcache/job_201107141446_0001/jobToken does not exist.

По причине ошибки я проверил следующие вещи, и все еще происходит сбой, по которому я не могу понять причину.

1. All the temp directories are in place
2. Memory is way more than it might be required for job (running a small job)
3. Permissions verified. 
4. Nothing Fancier done in the configuration just usual stuff.

Самое странное, что задание иногда успешно выполняется и в большинстве случаев не работает. Любое руководство / помощь по вопросам была бы действительно полезной. Я работаю над этой ошибкой за последние 4 дня и ничего не могу понять. Пожалуйста, помогите !!!

Спасибо и С уважением, Атул

1 Ответ

1 голос
/ 27 июня 2014

Я столкнулся с той же проблемой, это происходит, если средство отслеживания задач не может выделить указанную память дочерней JVM для задачи.

Попробуйте выполнить то же самое задание еще раз, когда кластер не занят выполнением многих других заданийнаряду с этим, он будет проходить или иметь умозрительное выполнение со значением true, в этом случае hadoop выполнит ту же задачу в другом трекере задач.

...