Data Engineering/Hadoop
[Hadoop] Python으로 MapReduce 구현하기
snoony
2024. 3. 7. 15:43
mapper.py
import sys
for line in sys.stdin:
words = line.strip().split()
for word in words:
print(f"{word}\t{1}")
mapper.py 리눅스 서버로 옮기기
[root@localhost hadoop-3.3.6]# chmod +x mapper.py
[root@localhost hadoop-3.3.6]# echo "hello world python and hadoop"| ~/hadoop-3.3.6/mapper.py
mapreduce.py
#!/usr/bin/env python
from operator import itemgetter # 다양한 방법으로 딕셔너리를 정렬
import sys
# 필요한 변수 초기화
result = {}
for line in sys.stdin:
word,count = line.strip().split('\t',1)
if word not in result:
result[word] = 1 # 최초 생성
else:
result[word] += 1 # 키가 있으므로 증가
for key,value in result.items():
print(f"{key} : {value}")
실행 권한 설정
[root@localhost hadoop-3.3.6]# chmod +x mapreduce.py
실행 결과
[root@localhost hadoop-3.3.6]# echo "hello world python and hadoop hello"| ./mapper.py | sort -k1,1 | ./mapreduce.py