У меня проблема с Hadoop Streaming - Unable to find file error. Однако ни одно из представленных решений не работает.Не удалось найти файлы в потоке hadoop
Моя командная строка:
hadoop jar /mnt/shared/hadoop-streaming-1.0.3.jar -input /user/cloudera/mz_paf/batch_sk=1234 \
-output /user/cloudera/mz_paf/out \
-file /mnt/shared/java/paf-rules.properties -file /mnt/shared/java/pafvalid.py \
-mapper "pafvalid.py paf-rules.properties 10"
Это приводит к
java.io.IOException: Cannot run program "pafvalid.py": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at org.apache.hadoop.streaming.PipeMapRed.configure(PipeMapRed.java:214)
at org.apache.hadoop.streaming.PipeMapper.configure(PipeMapper.java:66)
Я попробовал несколько других подходов, также упомянутых в этом другом вопросе SOF включая использование местоположения HDFS для входных файлов: еще же ошибка файла не найдена. Также попробовал просто иметь файлы в локальном каталоге, чтобы избежать проблем с пути. Еще нет кубиков.
Вы пробовали это сами? Что касается проблемы с файлом свойств: он должен быть доступен для всех машин-манипуляторов. Вот почему я поместил -файлы. – javadba
@javadba извините javadba, я не пробовал себя .. просто пища для размышлений. Вы можете настроить сетевую файловую систему по всему кластеру и поместить туда свой файл свойств. –
Привет, у нас нет NFS (по соображениям безопасности за пределами области здесь ..) - все файлы должны быть доступны в HDFS. – javadba