hadoop Map-Reduce体系架构
1. map-reduce的编程模型
2. 没有reduce的编程模型
3. 复杂的编程模型
4.mapper
Map-Reduce的思想就是“分而治之”
mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”执行
“简单的任务”有几个含义: 1)数据或计算规模相当于缘任务要大大缩小;2)就近计算,即会被分配到存放了所需数据的节点进行计算;3)这些小任务可以并行计算,彼此间几乎没有依赖关系
5.Reducer
对map阶段的结果进行汇总
Reducer的数目由mapred-site.xml配置文件里的项目mapred.reduce.tasks决定。缺省值为1,用户可以覆盖之
6.Shuttler
在mapper和reducer中间的一个步骤(可以没有)
可以把mapper的输出结果按照某种key值重新切分和组合n份
把key值符合某种范围的输出送到特定的reducer那里去处理
可以简化reducer过程
7.M-R的现实例子
流程原理图
Mapper
reducer
运行mapper和reducer
8. 性能优化
究竟需要多少个reducer
输入:大文件优于小文件
减少网络传输:压缩map的输出
优化每个节点能运行的任务数:mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum(缺省值均为2)
9.map-reduce工作机制剖析图
10.调度机制
缺省为先入先出作业队列调度
支持公平调度器
支持容量调度器
11.任务执行优化
12.错误处理机制:硬件故障
13.错误处理机制:任务失败
14.hadoop命令大全和hadoop API大全
15.审计日志
把log4j.properties配置文件中的log4j.logger.org.apache.hadoop.fs.FSNamesytem.audit=WARN改为“INFO”可以打开审计日志。每个HDFS事件都会在namenode的log中写入一行记录
16.监控日志
17.第三方工具
Ganglia
Chukwa
Openstack