HA(High Available)高可用性集群环境搭建
理解MapReduce
- Map
将数据映射为KV模型
并行分布式计算
计算向数据移动
- Reduce
数据全量/分量加工
相同的key为一组,调用一次reduce方法
排序实现key的汇聚([归并排序]-将已有序的子序列合并,得到完全有序的序列)
- KV使用自定义数据类型
序列化:便于分布式程序数据交互
Comparable:实现排序(字典序,数值序)
MR 1.0
- 角色
JobTracker:(主)调度所有的作业和监控整个集群的资源负载
TaskTracker:(从)管理自身节点资源,和JobTracker心跳,汇报资源,获取task
Client:以作业为单位,规划作业计算分布,提交作业资源到HDFS,最终提交作业到JobTracker
- 弊端
1.JobTracker负载过重,单点故障
2.资源调度和计算调度强耦合,其他计算框架需要重复实现资源管理
3.不同框架对资源不能全局管理
MR 2.0 On YARN
- YARN:Yet Another Resource Negotiator
特点:解耦资源管理与任务计算,多个应用框架可运行在YARN上(MapReduce、Spark、Storm等)
ResourceManager:(主)集群节点资源管理
NodeManager:与RM汇报资源;管理Container生命周期(计算框架中的角色以Container表示)(一般与DataNode位于同节点上)
ApplicationMaster:负责应用程序相关事务(任务调度,任务监控和容错等);每个应用程序对应一个ApplicationMaster
Container:默认NM启动线程控制Container大小,超出申请资源,kill;支持linux内核的Cgroup
- MR
RM-ApplicationMaster-Container:以作业为单位,负载到不同的节点,避免单点故障;创建Task需要和RM申请资源(Container)
Task-Container:执行具体的作业
- Client
RM—Client:请求资源创建AM
AM-Client:与AM交互