Hadoop相关技术

一.Hadoop 的优化与发展

1.1 局限与不足

  • 抽象层次低,需要人工编码;
  • 表达能力有限;
  • 开发者自己管理作业之间的依赖关系;
  • 难于看到程序的整体的逻辑;
  • 执行迭代操作效率低;
  • 实时性差;
  • 资源浪费;

1.2 改进与提升

  • 对MapReduce 和HDFS两大核心组件进行改进;
    在这里插入图片描述
  • 不断丰富Hadoop组件,包括Pig,Tez,Spark和Kafka等。
    在这里插入图片描述

二.HDFS2.0的新特性

在这里插入图片描述

2.1 HDFS HA:解决单点故障问题。
在这里插入图片描述
2.2 HDFS Federation

  • 存在的问题
    在这里插入图片描述

  • 解决方式:HDFS Federation
    在这里插入图片描述

    • 解决单名称节点存在的问题,解决了HDFS 的集群扩展性问题,性能更高效,具有良好的隔离性。
    • 各自管理字节的命名空间;

三.新一代资源管理调度管家YARN

3.1 MapReduce 1.0 的缺陷

  • 存在单点故障;
    在这里插入图片描述
  • JobTracker 任务过重;
  • 容易出现内存溢出;
  • 资源划分不合理, Map Slot和Reduce Slot;

3.2 YARN 设计思路

分离出资源管理功能,单独形成YARN,MapReduce 2.0变成了运行在YARN 上的纯粹的计算框架。
在这里插入图片描述

  • ResourceManager:负责资源管理;
  • ApplicationMaster:负责任务调度和任务监控;

YARN 是一个资源管理调度框架。

3.3 YARN 体系结构
在这里插入图片描述

  • ResourceManager:全局资源管理器,负责整个系统的资源管理与分配,两大核心组件如下;

    • 调度器Scheduler;
      • 接收来自ApplicationMaster的应用程序资源请求,把集群中的资源以“容器”的形式分配给提出申请的应用程序,容器的选择通常会考虑应用程序所要处理的数据的位置,进行就近选择从而实现“计算向数据靠拢”;
      • 容器(Container)作为动态资源分配单位,每个容器都封装了一定数量的CPU、内存、磁盘等资源,从而限定每个应用程序可以使用的资源数量。
      • 调度器被设计成一个可插拔的组件,YARN不仅自身是提供了许多种直接可用的调度器,也允许用户根据自己的需求重新设计调度器。
    • 应用程序管理器Applications Manager
      在这里插入图片描述
    • 负责系统中所有应用程序的管理工作,主要包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster 运行状态并在失败是重新启动等;
  • ApplicationMaster
    在这里插入图片描述

    • ResourceManager接收用户提交的作业,按照作业的上下文信息以及NodeManager收集来的容器状态信息,启动调度过程,为用户作业启动一个ApplicationMaster;
    • 功能:
      • 当用户提交作业时,ApplicationMaster与ResourceManager协商获取资源;
      • ResourceManager会以容器的形式为ApplicationMaster分配资源;
      • 把获取的资源进一步分配给内部的各个任务(Map任务和Reduce 任务)实现资源的“二次分配”;
      • 与NodeManager保持交互通信,进行应用程序的启动、运行、监控和停止,监控申请到的资源的使用情况;
      • 对所用任务的执行进度的和状态进行监控,并在任务发生失败时执行失败恢复(即重新申请资源重启任务);
      • 定时向ResourceManager发送“心跳”信息,报告资源的使用情况和应用的进程信息;
      • 当作业完成时,ApplicationMaster向 ResourceManager注销容器,执行周期完成;
  • NodeManager
    在这里插入图片描述

    • NodeManager 是驻留在YARN集群中的每个节点上的代理,主要负责如下工作:
      • 容器生命周期管理;
      • 监控每个容器的资源使用情况;
      • 以“心跳"的方式与ResourceManager保持通信;
      • 向ResourceManager汇报作业的资源使用情况和每个容器的而运行状态;
      • 跟踪节点健康状况;
      • 接收来自ApplicationMaster的启动\停止容器的各种请求;
        在这里插入图片描述
  • 部署情况:
    在这里插入图片描述

3.4 YARN 工作流程
在这里插入图片描述

  • 用户编写客户端应用程序,向YARN 提交应用程序;
  • YARN 中的REsourceManager负责接收和处理来自客户端的请求,为用程序分配一个容器,在该容器中启动一个ApplicationMaster;
  • ApplicationMaster 被创建后会首先向ResourceManager注册;
  • ApplicationMaster 采用轮询的方式向ResourceManager申请资源;
  • ResourceManager以容器的形式向提出申请的ApplicationMaster分配资源;
  • 在容器中启动任务;
  • 各个任务向 ApplicationMaster 汇报自己的状态和进度;
  • 应用程序运行完成后ApplicationMaster向ResourceManager的应用程序管理器注销并关闭自己;

3.5 YARN框架与MapReduce1.0框架的对比分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 YARN 发展目标
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四.Hadoop 中代表性的组件

4.1 Pig 组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.2 Tez 组件

**在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 Spark 和 Kafka组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秘境之眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值