Контейнер завершился с ненулевой ошибкой с кодом завершения 1 во время задачи mapreduce
При выполнении jar в hadoop я получаю следующую ошибку:
16/11/04 18:32:59 INFO mapreduce.Job: Task Id : attempt_1478261728730_0005_m_000000_2, Status : FAILED
Exception from container-launch.
Container id: container_1478261728730_0005_01_000004
Exit code: 1
Stack trace: ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 1
16/11/04 18:33:09 INFO mapreduce.Job: map 100% reduce 0%
Это журнал приложения:
Native code library failed to load.
java.lang.UnsatisfiedLinkError: no opencv_java2411 in java.library.pathopencv_java2411
Я не знаю, что это значит, кто-нибудь может помочь с этим, пожалуйста?
1 ответ
Решение
Вам не хватает opencv на узлах вашего кластера. Смотрите здесь все подробности о том, как справиться с этим.
Короче говоря, вам нужно установить opencv на ваших исполнителей. Вы не можете действительно скомпилировать его в свою работу .jar
портативным способом, так как это C
а не код Java.
Обновление: обратите внимание, что среда ваших исполнителей Hadoop устанавливается вашим hadoop-env.sh. Поэтому он должен содержать строку вроде:
JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/etc/opencv/lib