mapreduce是处理海量数据的分布式计算框架
解决了:
数据分布式存储(hdfs)
作业调度(任务划区域执行)
容错(集群容错 能力高)
机器间通信复杂问题
分而治之思想:
分解
求解
合并
mapreduce映射:
分:map (复杂问题分解若干任务)
和:reduce(汇总个数可设置)
hadoop计算流程:
inputdata -> fomate -> hdfs => n个input data 切分 => 分配给N个map => reduce => output data
map task:
input data split ->N个 map => 内存写缓存(清空) => 回写N硬盘(key排序)文件 =>合并硬盘块(fetch)
reduce task:
fetch(每个文件对应marge)->marge ->归并排序 -> reduce(每个key负责不一样) -> output data
hdfs:
master-slave
保证可靠性可用性slave会有数据备份
hdfs分布式文件系统:
系统可靠(多份数据)
可扩展(集群扩展)
并发处理(吞吐能力)