Сбой потоковой передачи Hadoop с java.io.FileNotFoundException

Я написал задание по уменьшению карты только на карте python, которое принимает данные из стандартного ввода и обрабатывает их для получения некоторого вывода. Он отлично работает при локальном выполнении. Однако, когда я пытаюсь выполнить его с помощью Hadoop, я получаю исключение «Файл не найден». Не удается найти файл mapper.py. Кроме того, вот команда, которую я использую для запуска скрипта:

hadoop jar hadoop-streaming-1.1.1.jar -D mapred.reduce.tasks=0 -file "$PWD/mapper.py" -mapper "$PWD/mapper.py" -input "relevance/test.txt" -output "relevance/test_output_8.txt"

Файл test.txt также был скопирован в HDFS.

Ошибка:

java.io.FileNotFoundException: File /data1/mapr-hadoop/mapred/local/taskTracker/***********/job_201405060940_908425/attempt_201405060940_908425_m_000000_0/work/******/mapper.py does not exist.

может ли кто-нибудь понять, что мне здесь не хватает?


person AKG    schedule 10.06.2014    source источник


Ответы (1)


Избавление от $PWD из пути к файлу решило проблему. Рабочая команда:

hadoop jar hadoop-streaming-1.1.1.jar -D mapred.reduce.tasks=0 -file "mapper.py" -mapper "mapper.py" -input "релевантность/test.txt" -output "релевантность/test_output_8. текст"

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

person AKG    schedule 12.06.2014