大数据计算引擎原理和架构

随着互联网技术的广泛应用,5G以及物联网和云计算的迅猛发展,带动了全球数据爆发式增长,随之而来的是不断增长的数据规模和数据的动态快速产生,这对大数据计算引擎带来了极大的挑战,离线批处理、实时计算和高吞吐量催生了新技术的发展和旧技术的革新,计算引擎出现了百花齐放的景象。计算引擎大致分两类,离线计算和实时计算,下面为大家介绍几个主流的大数据计算引擎。

一、离线计算引擎

1. MapReduce

MapReduce产生的灵感来源于2004年Google发表的《MapReduce》论文中的大数据计算模型,用于大规模数据集(TB甚至PB级)的并行计算,利用分治策略,将计算过程分两个阶段,Map阶段和Reduce阶段,可谓是第一代大数据分布式计算引擎,为后来各类优秀的大数据计算引擎的出现提供了基础和可行性。

(1)MapReduce的架构

MapReduce 1.x架构如下:

       

图片

       

  1. 客户端向JobTracker提交任务

  2. JobTraker将任务拆解为多个子任务,分配给TaskTracker执行

  3. TaskTracker定时与JobTracker保持心跳,汇报任务执行情况

存在的问题:

  • 单点故障:一旦JobTracker出现故障,会导致任务无法提交和正常执行

  • JobTracker负载高:所有的任务的提交和分配以及资源管理都是由JobTracker控制,压力过于集中

  • 场景有限制:只能运行MapReduce作业,可兼容性差

为了解决MR v1的问题,MapReduce v2引入了资源管理器YARN (Yet Another Resource Negotiator),即新一代的MapReduce 2.0。

图片

       认识一下YARN中的重要角色及功能:

  1. ResourceManager:资源管理节点(RM),对应MR v1的JobTracker

    1. 负责处理来自客户端的提交的Job

    2. 启动Application Master管理任务

    3. 监控Application Master状态

    4. 为NodeManager分配资源(CPU、内存、磁盘、网络)

  2. NodeManager:工作节点(NM),对应MR v1的TaskTracker

    1. 管理节点container任务资源和运行情况

    2. 与ResourceManager保持通信,汇报自身的状态

  3. Application Master:任务管理服务(AM),其实就是ResourceManager的小弟

    1. 负责检查集群资源,申请mr程序所需资源

    2. 分配任务到相应的container容器执行

    3. 监控任务执行状态并向ResourceManager汇报任务执行情况

  4. Container:YARN资源抽象,封装了节点上的资源,如内存、CPU、磁盘等

YARN的优势:

  1. ResourceManager支持HA,解决了JobTracker单点故障的问题,提高集群可用性

  2. 实现资源管理和job管理分离,解决了JobTracker负载高的难题

  3. 提供Application Master负责监控所有的任务,解决了JobTracker集中管理监控的压力

  4. 高扩展性,不仅可以跑mr任务,还支持spark作业以及其他计算引擎任务

  5. 提高了资源的利用率

(2)MapReduce核心计算阶段

  • Mapper阶段:负责数据 的载入、解析、转换和过滤,map任务的输出被称为中间键和中间值 

      

图片

  • Reducer阶段:负责处理map任务输出结果,对map任务处理完的结果集进行排序、局部聚合计算再汇总结果

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值