2014-06-10 2 views
2

표준 입력에서 데이터를 받아 들여 일부 출력을 생성하는 python map-reduce 작업 만 작성했습니다. 로컬에서 실행하면 잘 작동합니다. 그러나, 내가 hadoop을 사용하여 그것을 실행하려고 할 때 예외가 발견되지 않습니다. 해당 mapper.py 파일을 찾을 수 없습니다. 또한, 여기에 내가 스크립트를 실행하는 데 사용하는 명령은 다음과 같습니다Hadoop streaming이 java.io.FileNotFoundException와 함께 실패했습니다.

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. 

할 수있는 내가 여기에 놓친 거지 무엇 하나 알아낼?

답변

0

파일 경로에서 $ PWD를 제거하면 문제가 해결됩니다. 작업 명령 :

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

또한 경로가" "으로 지정되었는지 확인하십시오. 예제가 누락 된 웹에서 많은 예제를 보았습니다.