MapReduce на EMR не связывается с RMProxy и застревает в ожидании менеджера ресурсов? - PullRequest
0 голосов
/ 25 января 2020

Я использую mapreduce / has oop на EMR, используя had oop 2.7.3. Запасная установка от AWS, и баночка была построена с плагином Maven Shade. Он бесконечно застревает в ожидании ResourceManager, но я абсолютно ничего не нашел ни в лог-файлах, ни в строке.

В job.waitForCompletion получается строка следующего содержания:

020-01-25 05:52:41,346 INFO org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl (main): Timeline service address: http://ip-172-31-13-41.us-west-2.compute.internal:8188/ws/v1/timeline/
2020-01-25 05:52:41,356 INFO org.apache.hadoop.yarn.client.RMProxy (main): Connecting to ResourceManager at ip-172-31-13-41.us-west-2.compute.internal/172.31.13.41:8032

Тогда он просто сидит там ... никогда не прогрессирует, и кластер должен быть остановлен или задача убита вручную.

Интересно, что, запустив hadoop jar <arguments>, я могу воспроизвести этот шаг локально, но Я понятия не имею, что его вызывает.

Примерно через 25 минут происходит сбой при распаковке банки:

After 25 minutes or so, the job produces output of the form:


AM Container for appattempt_1580058321574_0005_000001 exited with exitCode: -1000
For more detailed output, check application tracking page:http://192.168.2.21:8088/cluster/app/application_1580058321574_0005Then, click on links to logs of each attempt.
Diagnostics: /Users/gbronner/hadoopdata/yarn/local/usercache/gbronner/appcache/application_1580058321574_0005/filecache/11_tmp/tmp_job.jar (Is a directory)
java.io.FileNotFoundException: /Users/gbronner/hadoopdata/yarn/local/usercache/gbronner/appcache/application_1580058321574_0005/filecache/11_tmp/tmp_job.jar (Is a directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:225)
at java.util.zip.ZipFile.<init>(ZipFile.java:155)
at java.util.jar.JarFile.<init>(JarFile.java:166)
at java.util.jar.JarFile.<init>(JarFile.java:130)
at org.apache.hadoop.util.RunJar.unJar(RunJar.java:94)
at org.apache.hadoop.yarn.util.FSDownload.unpack(FSDownload.java:297)
at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:364)
at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:62)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Failing this attempt

Это происходит как на AWS EMR, так и локально. Никогда не видел эту ошибку, и использовать EMR прямо из коробки.

Есть идеи относительно того, почему это произойдет? Плохая банка? Потенциально связанный с другим неотвеченным вопросом здесь

1 Ответ

0 голосов
/ 28 января 2020

После исчерпывающих попыток сотен экспериментов, похоже, что ошибочная строка была

job.setJar ().

Почему, я не знаю. Он прекрасно работает под intellij, но надежно завершает работу с помощью команды hadoop как локально, так и под intellij.

...