Hadoop-Streaming: PYTHONPATH не работает, когда работает Mapper - PullRequest
2 голосов
/ 12 марта 2012
  • У меня настроен PYTHONPATH, и он тоже работает нормально, кроме случаев, когда я запускаю задание уменьшения карты
  • Не может сказать,

    Traceback (последний вызов был последним): Файл "/work/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201203091218_0006/attempt_201203091218_0006_m_000020_0/work/./mapper.py", строка 57, в из src.utilities импортные утилиты ImportError: нет модуля с именем src.utilities java.lang.RuntimeException: PipeMapRed.waitOutputThreads (): не удалось выполнить подпроцесс с кодом 1 в org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads (PipeMapRed.java:311) в org.apache.hadoop.streaming.PipeMapRed.mapRedFinished (PipeMapRed.java:545) в org.apache.hadoop.streaming.PipeMapper.map (PipeMapper.java:121) в org.apache.hadoop.mapred.MapRunner.run (MapRunner.java:50) в org.apache.hadoop.streaming.PipeMapRunner.run (PipeMapRunner.java:36) в org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:436) в org.apache.hadoop.mapred.MapTask.run (MapTask.java:372) в org.apache.hadoop.mapred.Child $ 4.run (Child.java:261) at java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1059) в org.apache.hadoop.mapred.Child.main (Child.java:255) java.lang.RuntimeException: PipeMapRed.waitOutputThreads (): не удалось выполнить подпроцесс с кодом 1 в org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads (PipeMapRed.java:311) в org.apache.hadoop.streaming.PipeMapRed.mapRedFinished (PipeMapRed.java:545) в org.apache.hadoop.streaming.PipeMapper.close (PipeMapper.java:132) в org.apache.hadoop.mapred.MapRunner.run (MapRunner.java:57) в org.apache.hadoop.streaming.PipeMapRunner.run (PipeMapRunner.java:36) в org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:436) в org.apache.hadoop.mapred.MapTask.run (MapTask.java:372) в org.apache.hadoop.mapred.Child $ 4.run (Child.java:261) at java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1059) в org.apache.hadoop.mapred.Child.main (Child.java:255)

Вопрос: - Что, во время потоковой передачи hadoop нам нужно специально настроить путь Python? где?

Ответы [ 2 ]

0 голосов
/ 09 января 2014

нам нужно добавить предохранительный клапан MapReduce Service Environment. В моем случае мы используем графический интерфейс cloudera-manager, я добавил PYTHONPATH, он работает.

0 голосов
/ 07 июня 2012

У меня была та же проблема, и я думаю, что проблема в том, что виртуальные среды Hadoop не распознают путь python вашей системы. Если вы установите пакеты в /Library/Python/2.7/site-packages, Hadoop подберет их и будет работать.

...