하둡 어플리케이션은 보통 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
'Programming > Deep Learning' 카테고리의 다른 글
[pyplot] MNIST 글자 이미지 띄우기 (1) | 2017.08.01 |
---|---|
MNIST, CIFAR-10, CIFAR-100, STL-10, SVHN ILSVRC2012 task 1 - 인식률 랭킹 (0) | 2017.04.13 |
[텐서플로우] MNIST 고급 - 예제 (0) | 2017.04.06 |
[텐서플로우] MNIST 초급 - 예제 (0) | 2017.04.06 |
[딥 러닝] 싱글 뉴런 학습 시키기 - 역전파(back propagation) 구현하기 (0) | 2017.02.06 |