MapReduce
- hadoop提供的,用于大数据集(>1TB)分布式并行计算的框架
- 计算分为两个阶段:
Map,映射阶段
Reduce,规约阶段
MapReduce编程模型
ResourceManager,资源管理
NodeManager,节点管理
map,逐行映射(一行一行的处理)
MapReduce 编程实现
- 安装python连接操作的API
sudo pip3 install mrjob #python API
2.重写mapper、reducer方法 test.py
from mrjob.job import MRJob
class Count(MRJob):
def mapper(self,key,value):
#key,offset per line head
#value,content of per line
for word in value.split():
yield word,1
#shuffle & sort
#
def reducer(self,key,values):
yield key,sum(values)
if __name__ == "__main__":
Count.run()
3. 本地模式运行
python3 test.py -r local /home/lauf/words.txt
此时key 未排序
- hadoop模式
python3 test.py -r hadoop /home/lauf/words.txt
重点知识
理解mapreduce 的原理,了解代码