빅데이터공부하기60

스트리밍

 

- 하둡은 자바이외의 언어로 MapReduce 프로그램을 작성가능하게 해주는 API제공

: 하둡패키지의 일부로 제공되는 contrib / streaming / hadoop-streming-1.0.3.jar을 사용

 

- Mapper task 혹은 reducer task는 mapper 혹은 reducer 스크립트를 자식프로세스로 실행하고 표준 입출력을 통해 통신을 수행

 

- 텍스트 프로세싱에 적합

: 텍스트 라인 하나가 결국 하나의 입력 레코드로 취급됨. 이것의 해석은 mapper에 달림

: Mapper의 출력이나 Reducer의 입출력은 모두 tab을 키와 밸류간의 delimiter로 사용. tab 이외의 문자도 사용가능(configurable)

: 이는 내부적으로 디폴트로 자바의 TextlnputFormat과 TextOutputFormat을 사용하기 때문

 

- Reducer의 경우 입력키에 대해 같은 값을 갖는 밸류리스트가 한라인으로 한번에 넘어오는 것이 아니라 Flatten되어 개별 쌍이 넘어옴

: reduce(k, [v1, v2, v3])이 아니라 "reduce(k1, v1), reduce(k1, v2), reduce(k1, v3)"의 형태가 됨

 

- 단순 셀유틸리티들로 Streaming을 쉽게 테스트가능

: cat 입력파일 |your_mapper_script|sort|your_reducer_script

 

- 카운터의 경우는 stderr로 특별히 포맷된 문자를 출력하면 가능.

: Python에서의 예 : sys.stdrr.write("reporter:counter.그룹이름, 카운터이름, 카운터증가수\n")

 

- 자바에서 쓸 수 있는 거의 모든 기능들이 Streaming에서도 가능

: Combiner, Partitioner, IdentityReducer 등등..

 

 

 

+ Recent posts