Hadoop学习(2)——分布式计算框架MapReduce

一、分布式计算框架MapReduce介绍(计算向数据移动)

1.1、为什么叫MapReduce

MR原语:map + reduce(MapTask & ReduceTask输入(格式化k,v)数据map映射成一个中间数据集(k,v)reduce (sql)
“相同”的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算 (类似的sql)

1.2、计算框架MRwordcount 单词统计)

Hadoop 1.x  -- mr 1.x

(1)Map:

  • 读懂数据
  • 映射为KV模型
  • 并行分布式
  • 计算向数据移动

(2)Reduce:

  • 数据全量/分量加工(partition/group)
  • Reduce中可以包含不同的key
  • 相同的Key汇聚到一个Reduce中
  • 相同的Key调用一次reduce方法
  • 排序实现key的汇聚

K,V使用自定义数据类型:

  • 作为参数传递,节省开发成本,提高程序自由度
  • Writable序列化:使能分布式程序数据交互
  • Comparable比较器:实现具体排序(字典序,数值序等)

1.3、MRV1角色

(1)JobTracker

  • 核心,主,单点
  • 调度所有的作业
  • 监控整个集群的资源负载

(2)TaskTracker

  • 从,自身节点资源管理
  • 和JobTracker心跳,汇报资源,获取Task

(3)Client

  • 作业为单位
  • 规划作业计算分布
  • 提交作业资源到HDFS
  • 最终提交作业到JobTracker

弊端

  • JobTracker:负载过重,单点故障
  • 资源管理与计算调度强耦合,其他计算框架需要重复实现资源管理
  • 不同框架对资源不能全局管理
     

1.4、MRv2:Hadoop  YARN 解耦资源与计算

(1)角色介绍
ResourceManager:

  • 主,核心
  • 集群节点资源管理

NodeManager:

  • 与RM汇报资源
  • 管理Container生命周期
  • 计算框架中的角色都以Container表示

Container:【节点NM,CPU,MEM,I/O大小,启动命令】:

  • 默认NodeManager启动线程监控Container大小,超出申请资源额度,kill
  • 支持Linux内核的Cgroup

1.3、分布式资源管理框架YARN:负责集群资源的管理和调度

YARNHadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的

核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManagerApplicationMaster进程实现

ResourceManager:负责整个集群的资源管理和调度

ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等

优点:YARN的引入,使得多个计算框架可运行在一个集群中

每个应用程序对应一个ApplicationMaster

目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等

(1)MapReduce On YARN

将MapReduce作业直接运行在YARN上,而不是由JobTracker和TaskTracker构建的MRv1系统中

用法:

基本功能模块:

     •YARN:负责资源管理和调度

     •MRAppMaster:负责任务切分、任务调度、任务监控和容错等

     •MapTask/ReduceTask:任务驱动引擎,与MRv1一致

每个MapRaduce作业对应一个MRAppMaster:

     •MRAppMaster任务调度

     •YARN将资源分配给MRAppMaster

     •MRAppMaster进一步将资源分配给内部的任务

MRAppMaster容错:

     •失败后,由YARN重新启动

     •任务失败后,MRAppMaster重新申请资源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值