하둡 어플리케이션은 보통 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 |