단일 노드에서 hadoop 1.0.1을 사용하고 있으며 Python 2.7을 사용하여 탭으로 구분 된 파일을 스트리밍하려고합니다. Michael Noll의 단어 카운트 스크립트를 hadoop/python을 사용하여 실행할 수는 있지만 매우 단순한 매퍼 (mapper)와 감속기 (reducer)를 사용하여 파일을 복제하는 것은 불가능합니다. 여기지도/축소 작업 중 하둡 스트리밍 오류가 발생합니다.
import sys
for line in sys.stdin:
line = line.strip()
print '%s' % line
감속기 것 :
1 857774.000000
2 859164.000000
3 859350.000000
...
리눅스에서 맵퍼 및 감속기 잘 작동 :
cat input.txt | python mapper.py | sort | python reducer.py > a.out
import sys
for line in sys.stdin:
line = line.strip()
print line
여기에 입력 파일의 일부 여기 매퍼입니다
하지만 I chmod 이후에 apper 및 감속기, HDFS에 입력 파일을 이동하고 있다는 걸 확인하고 실행
12/06/03 10:19:11 INFO streaming.StreamJob: map 0% reduce 0%
12/06/03 10:20:15 ERROR streaming.StreamJob: Job not successful. Error: # of failed Map Tasks exceeded allowed limit. FailedCount: 1. LastFailedTask: task_201206030550_0003_m_000001
12/06/03 10:20:15 INFO streaming.StreamJob: killJob...
Streaming Job Failed!
모든 아이디어 : 나는 다음과 같은 오류가
bin/hadoop jar contrib/streaming/hadoop-*streaming*.jar -file mapperSimple.py -mapper mapperSimple.py -file reducerSimple.py -reducer reducerSimple.py -input inputDir/* -output outputDir
를? 감사.
감사합니다. Chris. 내 두뇌는 항상 주석 기호가있는 행을 무시하므로 결국 20 시간을 소비하여 코드를 자르고 생각할 수있는 모든 변형을 시도합니다. 매우 감사. – user1106278