Programming/Deep Learning
[하둡] 파이썬을 이용한 하둡 어플리케이션 - word count
푸어맨
2017. 4. 12. 19:55
하둡 어플리케이션은 보통 Mapper -> Shuffle -> Reducer 순으로 작업을 진행한다.
파이썬 예제와 함께 각각의 결과물을 확인한다.
1. Mapper
$ cat wordcount_mapper.py | python ./wordcount_mapper.py > output_mapper.txt $ cat output_mapper.txt import 1 sys 1 for 1 line 1 in 1 sys.stdin: 1 line 1 = 1 line.strip() 1 keys 1 = 1 line.split() 1 for 1 key 1 in 1 keys: 1 value 1 = 1 1 1 print("{0}\t{1}".format(key,value)) 1
2. Shuffle
$ cat output_mapper.txt | sort > output_sort.txt $ cat output_sort.txt = 1 = 1 = 1 1 1 for 1 for 1 import 1 in 1 in 1 key 1 keys: 1 keys 1 line 1 line 1 line.split() 1 line.strip() 1 print("{0}\t{1}".format(key,value)) 1 sys 1 sys.stdin: 1 value 1
3. Reducer
$ cat output_sort.txt | python wordcount_reducer.py > output_reducer.txt $ cat output_reducer.txt = 3 1 1 for 2 import 1 in 2 key 1 keys: 1 keys 1 line 2 line.split() 1 line.strip() 1 print("{0}\t{1}".format(key,value)) 1 sys 1 sys.stdin: 1 value 1
4. Mapper | Shuffle | Reducer
$ cat wordcount_mapper.py | python wordcount_mapper.py | sort | python wordcount_reducer.py > output.txt $ cat output.txt = 3 1 1 for 2 import 1 in 2 key 1 keys: 1 keys 1 line 2 line.split() 1 line.strip() 1 print("{0}\t{1}".format(key,value)) 1 sys 1 sys.stdin: 1 value 1
딥 러닝에 대해 독학을 하면서 정리한 걸 적고 있습니다.
전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.
추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^
- 푸어맨
[Reference]
(Writing Hadoop Applications in Python with Hadoop Streaming) http://www.glennklockwood.com/data-intensive/hadoop/streaming.htm
(하둡 스트리밍을 활용한 word count 예제) http://blog.acronym.co.kr/606
(파이썬 문자열 관련함수) http://agiantmind.tistory.com/31