极客时间架构师训练营 - 第十二周 - 总结
MapReduce流程图
只有排序之后才能找到相同的key值;
关联计算;
split是MapReduce的概念,一般与hdfs中的block是相同的;
网络拷贝:shuffle,将相同的key放到一起,以建立关联;
map+reduce -> map reduce job;
DAG:有向无环图;
MapReduce整体架构
MapReduce 1.0
TaskTracker 与 DataNode在一台上;
缺省情况下会拷贝五份jar包;如何进行设置jar包的副本数呢?!
为啥需要多份呢?!与hdfs上的block有多份的副本具有相同的作用?!
JobInprocess
一种树结构;
MapReduce整体架构需要再好好理解一下?!
MapReduce 2.0
MapReduce使用场景
InputFormat
Map进程数 & Map任务数
getSplits
createRecordReader
FileInputFormat
mapred.min.split.size:分片最小值
mapred.max.split.size:分片最大值
分片信息:<file,start,length,bosts>,通过hosts实现map的本地性;
blockSize介于分片大小之间
Partitioner
对key进行分区,进而吧数据按需求进行分发
调度方法
FIFO
Fair Scheduler
一般自定义调度方法;
JobTracker内部实现
作业控制
作业抽象成三层:
作业监控层
TA: Task Attempt
JobTracker容错
TaskTracker容错
灰名单
黑名单
Task容错
允许部分Task失败, mapred.max.map.failers.percent,默认为0
慢任务启动备份任务,失败任务尝试次数
mapred.map.max.attempts
mapred.reduce.max.attempts
Record容错
Hive
架构
SQL解析
multi-group-by
Hive Operator
编程框架
Metastore
Single User Mode
Multi User Mode
需要将Client和Server分离
将数据同时写入两张表中;
Hive QL - Join
map输入
map输出(reduce输入)
reduce输出
Join Optimizations
Map Joins:将小表在所有的map计算阶段进行加载;
版权声明: 本文为 InfoQ 作者【sljoai】的原创文章。
原文链接:【http://xie.infoq.cn/article/25f26001d779bcb016acfe14f】。文章转载请联系作者。
评论 (1 条评论)