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
'Data Engineering > Hadoop' 카테고리의 다른 글
[Hadoop] MapReduce 실행 중 Error: org.apache.hadoop.hdfs.BlockMissingException (0) | 2024.03.27 |
---|---|
[Hadoop] Hadoop Streaming (0) | 2024.03.07 |
[Hadoop] Java로 MapReduce 구현하기 (1) | 2024.03.06 |
[Hadoop] hdfs 명령어 정리 및 실행 (0) | 2024.03.06 |
[Hadoop] Hadoop 다운로드 및 환경설정 (0) | 2024.03.05 |