2014-06-09 2 views
1

스트리밍 작업의 경우 출력 디렉토리를 지정해야합니다. mapper의 결과를 HDFS 디렉토리가 아닌 stdout에 출력하고 싶다면 어떻게해야할까요? 이것이 가능한가? 다른 프로그램을 파이프 할 수 있도록이 작업을 수행하려고합니다.Hadoop 스트리밍 작업의 출력을 STDOUT으로 보내기

답변

0

나는 hadoop 내에 많은 스트리밍 작업을 작성했습니다. 사용자 정의 파이프 라인이 여기에서 무엇을 기대하는지는 명확하지 않습니다. 출력에 가고이 경우

hadoop jar hadoop-*streaming*.jar 
-file mapper.py -mapper mapper.py \ 
-input /user/myuser/input/* -output /user/myuser/output 

:

당신이 (예를 들어, 쉘 스크립트 .sh가하는 평에서 변경) 파이썬에서 매퍼/감속기를 썼다 가정, 우리가 자세히 살펴 보자 hdfs - 당신이 말한대로 이 아닙니다.

대신 출력을 stdout으로 보낸 경우 문제는 다음과 같습니다. 출력이 여러 매퍼로 생성되는 것을 어떻게 처리합니까?

여기에 아이디어가 있습니다. 왜 "흐름과 함께"가 아니라고 생각하십니까? 결과물을 hdfs로 보내주십시오. TotalOrderPartitioner 감속기를 추가하여 모든 출력 파일을 결합하십시오. 그렇다면 출력 결과에 대해 hdfs -cat을 실행합니다.

+1

나는 작은 사람의 출력으로 집계 작업을 실행하기 때문에 질문자를 대변 할 수는 없지만 hdfs 대신 stdout을 사용하고 싶다. 오버 헤드와 막대한 양의 낭비로 보인다. -size) ~ 128 바이트를 HDFS에 넣습니다. – Noah

관련 문제