hadoop离线day07--Hadoop YARNHA机制

Posted Vics异地我就

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop离线day07--Hadoop YARNHA机制相关的知识,希望对你有一定的参考价值。

目录

今日内容大纲

HDFS 安全模式

自动进入离开

手动进入离开

安全模式的注意事项

 

Hadoop集群动态扩容、缩容

集群扩容

集群缩容

Apache YARN

YARN的概述

YARN组件--3大组件

client提交程序到yarn运行流程

YARN schduler

YARN3大调度策略

Hadoop HA集群


今日内容大纲

#HDFS
    安全模式  
#Hadoop集群动态扩容与缩容    运维
#Hadoop YARN
    介绍:集群资源管理 任务调度
    3大组件 架构
    程序在yarn运行流程:以mr程序提交为例
    yarn调度器
        核心调度策略(算法)
        Fair调度:多租户资源隔离问题 运维
#Hadoop HA集群
    高可用概念 持续可用 一直可用
    解决单点故障问题  主备集群
    Hadoop: NN  RM
    Hadoop HA实现方案--QJM
    搭建HA集群
#Hadoop federation联邦集群  
​
#今日课程重点:
    YARN HA
    对于涉及运维操作 听清原理很重要 可以不实操

HDFS 安全模式

  • 安全模式(safe mode)是HDFS集群处于一种保护状态,文件系统只可以读,不可以写。

  • 安全模式如何进入离开的?

    • 自动进入离开

      #在HDFS集群刚启动时候 会自动进入 为了演示方便  使用单个进程逐个启动方式
      ​
      #step1:启动namenode
      hadoop-daemon.sh start namenode
      ​
      #step2: 执行事务性操作 报错
      [root@node1 ~]# hadoop fs -mkdir /aaaa
      mkdir: Cannot create directory /aaaa. Name node is in safe mode.
      ​
      Safe mode is ON. The reported blocks 0 needs additional 52 blocks to reach the threshold 0.9990 of total blocks 52. The number of live datanodes 0 has reached the minimum number 0. Safe mode will be turned off automatically once the thresholds have been reached.
      ​
      #1、条件1:已经汇报的block达到总数据块的 0.999
      #2、条件2:存活的dn数量大于等于0  说明这个条件不严格
      ​
      ​
      #step3:依次手动启动datanode
      hadoop-daemon.sh start datanode
      ​
      Safe mode is ON. The reported blocks 52 has reached the threshold 0.9990 of total blocks 52. The number of live datanodes 2 has reached the minimum number 0. In safe mode extension. Safe mode will be turned off automatically in 25 seconds.
      #3、条件3:满足12条件的情况下 持续30s 结束自动离开安全模式
      ​
      Safemode is off.
      ​
      ​
      #为什么集群刚启动的时候 要进入安全模式 
      文件系统元数据不完整 无法对外提供可高的文件服务  属于内部的元数据汇报、校验、构建的过程。
      ​
    • 手动进入离开

      hdfs dfsadmin -safemode enter
      hdfs dfsadmin -safemode leave
      ​
      Safe mode is ON. It was turned on manually. Use "hdfs dfsadmin -safemode leave" to turn safe mode off.
      ​
      #运维人员可以手动进入安全模式 进行集群的维护升级等动作 避免了群起群停浪费时间。
  • 安全模式的注意事项

    • 刚启动完hdfs集群之后 等安全模式介绍才可以正常使用文件系统 文件系统服务才是正常可用。

    • 后续如果某些软件依赖HDFS工作,必须先启动HDFS且等安全模式结束才可以使用你的软件。

 


Hadoop集群动态扩容、缩容

  • 所谓动态扩容、缩容指的是集群在正常的运行下、增加节点、删除节点

  • 其他称呼:节点上线、节点下线 节点服役 节点退役

  • 针对的角色是谁

    • HDFS datanode

    • YARN nodemanager

  • 集群扩容

    • 新机器的服务器基础环境和已有集群保存一致

      ip处于同一网段
      hosts
      防火墙关闭
    • 把已有集群的安装包scp一份到新机器上

    • 手动启动新集群上的角色

      hadoop-daemon.sh start datanode
      yarn-daemon.sh start nodemanager
    • 集群负载均衡服务

      hdfs dfsadmin -setBalancerBandwidth 67108864 
      sbin/start-balancer.sh -threshold 5
    • Q:可选机制 白名单机制

      dfs.hosts 指向一个文件,只有文件列表中的机器才可以加入集群 准入机制
      ​
      默认值为空,所有的机器都允许加入集群
  • 集群缩容

    • 需要添加黑名单 列出待下线的节点的IP

      dfs.hosts.exclude 
    • 刷新集群信息

      hdfs dfsadmin -refreshNodes
      yarn rmadmin -refreshNodes
      ​
      #等待节点的状态变成  decommissioned 正式停用的
    • 手动关闭节点进程

    • 还可以针对已有的节点再进行负载均衡

  • 扩展:在Hadoop3 还支持在同一个机器上不同的磁盘之间的负载均衡。 disk balancer


Apache YARN

  • YARN的概述

    • yarn是一个通用资源管理系统和调度平台。 详细解释见课堂画图

      资源指的跟程序运行相关的硬件资源  比如:CPU RAM 
  • YARN组件--3大组件

    • 物理层面上-2个组件

      • 主角色 resourcemanager RM

        ResourceManager 负责整个集群的资源管理和分配,是一个全局的资源管理系统。
        是程序申请资源的唯一入口 负载调度。
      • 从角色 nodemanager NM

        nodemanager 负责每台机器上具体的资源管理 负责启动 关闭container容器
    • 程序内部--1个组件

      • ApplicationMaster AM

      yarn作为通用资源管理系统 不关心程序的种类和程序内部的执行情况?
      ​
      谁来关心程序内部执行情况?
      比如MapReduce程序来说,先maptask 再运行reducetask.
      ​
      需要一个组件来管理程序执行情况  程序内部的资源申请 各阶段执行情况的监督
      ​
      #为了解决这个问题 yarn提供了第三个组件 applicationmaster 
      (男)主人,雇主; 主宰; 主人; 有控制力的人; 能手; 擅长…者;
      ​
      #把applicationmaster称之为程序内部的老大角色 负责程序内部的执行情况
      ​
      #AM针对不同类型的程序有不同的具体实现
      yarn默认实现了MapReduce的AM  名字叫做MrAppMaster.
      其他软件比如spark flink需要实现自己的AM 才能在yarn运行。
      ​
      ​
      #结论:在上述设计模式下  任何种类程序在yarn运行,首先都是申请资源运行AM角色,然后由AM控制程序内部具体的执行。
  • client提交程序到yarn运行流程

    • 以MapReduce程序为例

  •  


YARN schduler

  • 所谓的调度器指的是当集群繁忙的时候 如何给申请资源的程序分配资源

  • scheduler属于ResourceManager功能

  • YARN3大调度策略

    • FIFO Scheduler 先进先出策略

    • capacity Scheduler 容量调度策略

    • Fair Sheduler 公平调度策略

  • Apache Hadoop版本默认策略是capacity 。CDH商业版本默认策略是Fair。

    • 默认情况下,整个yarn集群在capacity策略下,划分为一个队列 名字叫做default,占整个集群资源的100.

  • 决定调度策略的参数

    #yarn-site.xml
    ​
    yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
    ​
    #还可以在yarn 8088页面查看
  • 案例:Fair调度器多租户资源隔离

    • 给不同的用户划分不同的队列 实现资源隔离并且共享集群资源

    • 属于大数据运维操作。

    • 听到原理即可,可以不实操。因为我们使用的是虚拟机环境,每个机器的内存本来就小的可怜,你在划分4个不同的队列,后面的程序都凉凉。

    • 你可以练习完之后 恢复成之前的样子。

      #1、关闭yarn集群
      stop-yarn.sh 
      ​
      #2、删除yarn-site.xml中增加的参数
      #3、同步yarn-site.xml到其他机器上

Hadoop HA集群

  • HA叫做高可用模式 注意解决的是单点故障问题。 SPOF

  • Hadoop中单点故障

    • NameNode

    • Resourcemanager

  • NameNode HA ---QJM共享日志集群方案

    • zkfc 实现主备切换避免脑裂

    • jn集群 editslog编辑日志同步

  • Resourcemanager HA --基于zk实现

    • RM需要维护的数据量很少 不像NN需要同步文件系统大量的元数据。直接基于zk即可完成

    • 别忘了 zk也是一个分布式小文件存储系统。

  • Hadoop HA集群搭建 难点就是配置文件的编写

  • 听懂原理 可以不搭建 后面使用非HA集群。

    • 针对当下集群进行逻辑删除 备份

    • 使用新的安装包进行编辑

  • HA 主备切换错误 缺少依赖

    2021-05-30 17:02:40,372 WARN org.apache.hadoop.ha.SshFenceByTcpPort: PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 8020 via ssh: bash: fuser: command not found
    ​
    #yum install -y fuser  猜想行为
    ​
    ​
    yum install -y psmisc

 

以上是关于hadoop离线day07--Hadoop YARNHA机制的主要内容,如果未能解决你的问题,请参考以下文章

hadoop离线day03--Hadoop HDFS

hadoop离线day02--Apache Hadoop

hadoop离线day05--Hadoop MapReduce

hadoop离线day05--Hadoop MapReduce

hadoop离线day04--Hadoop MapReduce

hadoop离线day06--Hadoop MapReduceHDFS高阶