2013-08-24 2 views
0

У меня проблема с 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 для входных файлов: еще же ошибка файла не найдена. Также попробовал просто иметь файлы в локальном каталоге, чтобы избежать проблем с пути. Еще нет кубиков.

ответ

0

Я не передал аргумент непосредственно в командной строке с использованием потоковой передачи hadoop. Если бы я был вами, я постараюсь сначала поставить эти аргументы внутри сценария Python.

затем изменить командную строку здесь

-mapper "pafvalid.py paf-rules.properties 10" 

Для

-mapper /mnt/shared/java/pafvalid.py 

Поправьте меня, если вы поймете, что из

+0

Вы пробовали это сами? Что касается проблемы с файлом свойств: он должен быть доступен для всех машин-манипуляторов. Вот почему я поместил -файлы. – javadba

+0

@javadba извините javadba, я не пробовал себя .. просто пища для размышлений. Вы можете настроить сетевую файловую систему по всему кластеру и поместить туда свой файл свойств. –

+0

Привет, у нас нет NFS (по соображениям безопасности за пределами области здесь ..) - все файлы должны быть доступны в HDFS. – javadba

Смежные вопросы