java.io.IOException: работа не удалась! при запуске примера приложения на моем OSX с Hadoop-0.19.1 - PullRequest
1 голос
/ 17 апреля 2009
bash-3.2$ echo $JAVA_HOME
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
bash-3.2$ bin/hadoop dfs -copyFromLocal conf /user/yokkom/input2
bash-3.2$ bin/hadoop jar hadoop-*-examples.jar grep input2 output 'dfs[a-z.]+'
09/04/17 10:09:32 INFO mapred.FileInputFormat: Total input paths to process : 10
09/04/17 10:09:33 INFO mapred.JobClient: Running job: job_200904171309_0001
java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232)
        at org.apache.hadoop.examples.Grep.run(Grep.java:69)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.examples.Grep.main(Grep.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:141)
        at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:165)
        at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
        at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)

Кто-нибудь знает, почему это происходит? Та же самая работа отлично работает на машинах Linux. И после того, как «Сбой задания» происходит, весь кластер Hadoop перестает отвечать.

Моя версия MacOS - 10.5.6.

РЕДАКТИРОВАТЬ Тот же результат для hadoop-0.20.1

Ответы [ 2 ]

0 голосов
/ 25 мая 2009

Да, grep может высосать память, особенно на больших наборах данных. Насколько велик ваш вклад? Кстати, есть и пермская память.

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

Есть несколько интересных переключателей для выполнения настраиваемого поведения в OutOfMemory, однако я подозреваю, что jobRunner просто перехватывает все перед тем, как добраться до виртуальной машины. Вам может понадобиться другой способ отладки.

0 голосов
/ 19 мая 2009

Я гуглил по нему и такая же ошибка (в той же строке) уже случалась раньше. Читайте об этом здесь и здесь .

Вторая ссылка предлагает следующее:

  • Удалите conf / log4j.properties, чтобы увидеть подробный отчет
  • Попробуйте увеличить объем памяти кучи (с помощью ключей -Xms и -Xmx)
...