2011-10-04 4 views
0

나는 elastic-mapreduce 루비 라이브러리를 사용하여 일의 흐름을 시작할 수있었습니다. 이제 작업이 완료된 후에도 여전히 '살아있다'는 인스턴스가 있습니다. SSH를 사용하여 로그인했지만 다른 작업을 시작하려고하지만 hadoop이 입력 파일을 찾을 수 없기 때문에 다양한 시도가 실패했습니다. 로컬 및 S3에 입력 파일을 저장하려고했습니다.SSH 내에서 Hadoop을 직접 호출하여 작업 시작

내 SSH 세션에서 직접 새 hadoop 작업을 만들려면 어떻게해야합니까? 내 시도에서

오류 :

hadoop jar hadoop-0.20-streaming.jar \ 
-input /home/hadoop/mystic/search_sets/test_sample.txt \ 
-output /home/hadoop/mystic/search_sets/test_sample_output.txt \ 
-mapper /home/hadoop/mystic/ctmp1_mapper.py \ 
-reducer /home/hadoop/mystic/ctmp1_reducer.py \ 
-file /home/hadoop/mystic/ctmp1_mapper.py \ 
-file /home/hadoop/mystic/ctmp1_reducer.py 

11/10/04 22:33:57 ERROR streaming.StreamJob: Error Launching job :Input path does not exist: hdfs://ip-xx-xxx-xxx-xxx.us-west-1.compute.internal:9000/home/hadoop/mystic/search_sets/test_sample.txt 

(초 사용하여 시행했을 S3) (처음에는 SFTP를 사용하여 파일 업로드에 의해 생성했던 로컬 파일 저장, 사용을 시도) :

hadoop jar hadoop-0.20-streaming.jar \ 
-input s3n://xxxbucket1/test_sample.txt \ 
-output /home/hadoop/mystic/search_sets/test_sample_output.txt \ 
-mapper /home/hadoop/mystic/ctmp1_mapper.py \ 
-reducer /home/hadoop/mystic/ctmp1_reducer.py \ 
-file /home/hadoop/mystic/ctmp1_mapper.py \ 
-file /home/hadoop/mystic/ctmp1_reducer.py 

11/10/04 22:26:45 ERROR streaming.StreamJob: Error Launching job : Input path does not exist: s3n://xxxbucket1/test_sample.txt 

답변

2

첫 번째 동작하지 않습니다. Hadoop은 로컬 스토리지가 아닌 HDFS에서 해당 위치를 찾습니다. 그것은 작업이처럼 file:// 접두사를 사용하는 경우 :

-input file:///home/hadoop/mystic/search_sets/test_sample.txt 

는 그래도 난, 입력을 스트리밍이 한 번도 안 써봤, 아마 작업을 수행하는 경우에도 가장 좋은 생각이 아니다.

두 번째 (S3)가 작동해야합니다. 우리는 항상이 일을합니다. 확인 파일이 실제로 존재 확인 :

hadoop dfs -ls s3n://xxxbucket1/test_sample.txt 

또는, 당신은 HDFS에서 파일을 넣고 정상적으로 사용할 수 있습니다. EMR에있는 일자리의 경우, 나는 보통 S3가 가장 편리하다고 생각합니다.

+0

file : ///는 치료를합니다. 또한 s3n : //을 s3 : //으로 변경하면 s3 파일이 작동하는 것으로 나타났습니다. – Trindaz

+1

아, 아마도 s3n 대신 s3n으로 업로드했을까요? 나는이 두 가지가 호환 가능하다고 생각하지 않는다. http://wiki.apache.org/hadoop/AmazonS3 – ajduff574

관련 문제