大数据之yarn

Yarn概述

是一个资源调度平台,相当于一个分布式的操作系统平台,而MR相当于操作系统中运行的软件,比如QQ、微信。目前,Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop3.3.4默认的资源调度器是Capacity Scheduler。

基础架构大数据之yarn_第1张图片

  1. ResourceManager
    • 处理客户端请求
    • 监控NodeManager
    • 启动或监控ApplicationMaster
    • 资源的分配与调度
  2. NodeManager
    • 管理单个节点的资源
    • 处理来自RM的命令
    • 处理来自AM的命令
  3. ApplicationMaster
    • 为应用程序申请资源并分配给内部的任务
    • 任务的监控与容错
  4. Container(容器):container是yarn中的资源抽象
    • 独立:各个容器之间是独立运行的
    • 回收:不使用时会自动回收资源

YARN工作机制

  1. 客户端申请一个Application,RM返回资源提交路径和任务ID
  2. 客户端按照路径提交任务
  3. 客户端资源提交完毕,申请运行mrAppMaster
  4. 将用户请求初始化为一个Task
  5. AM领取任务,创建一个容器
  6. 容器从HDFS文件系统下载job资源到本地
  7. 在容器中进行MapRedcue操作

Yarn调度器和调度算法

  1. FIFO
    • 单队列
    • 先进先执行,无法区分任务的轻重缓急
    • 资源利用率取决于当前正在运行的程序
  2. 容量(Capacity Scheduler):优先选择资源利用率低的队列
    • 多队列,允许多个队列并发运行
    • 容量保证:可以设定资源最低保障和资源使用上限
    • 灵活性:如果队列资源有剩余,可以暂借,当该队列有新应用程序提交,其他队列借调的资源要返还。
    • 多租户:会限制同一用户提交的作业所占用的资源量,以防止一个用户独占队列资源。
  3. 公平(Fair Scheduler):同队列所有任务共享资源,在时间尺度上获得公平的资源。
    • 队列资源 / 该队列job个数 - 实际获得资源个数 = 缺额
    • 策略:优先选择对资源的缺额比例大的
    • 每个队列可以单独设置资源分配方式
    • 参数
      • 实际最小资源份额 = min(资源需求量,配置的最小资源)
      • 是否饥饿:给的资源是否小于最小资源份额
      • 资源分配比:饥饿的程度
      • 资源使用权重比:资源使用量/权重

总结:公平调度器由于每个队列可以并发运行,队列之间的各个任务也可以并发运行,对集群的性能要求较高。

hadoop优化和新特性

集群磁盘数据均衡

加入一块磁盘

  1. 新建一块磁盘
  2. lsblk:查看分区情况
  3. sudo mkfs.ext4 /dev/sdb1: 格式化刚刚建立的分区
  4. sudo mkdir -p /data/disk1 + sudo mount /dev/sdb1 /data/disk1新建一个目录挂载这个磁盘
  5. lsblk : 查看磁盘情况
  6. sudo chown -R atguigu:atguigu /data/disk1:修改访问权限
  7. 可以在hadoop102:9864查看磁盘信息,目前HDFS并不认识这块磁盘
  8. 在hdfs-site.xml文件中添加如下内容:
<property>
     <name>dfs.datanode.data.dirname>
     <value>file://${hadoop.tmp.dir}/dfs/data,file:///data/disk1 value>
property>
  1. 完成后重启datanode节点

新磁盘加入后负载均衡

  1. 生成均衡计划: hdfs diskbalancer -plan hadoop102 --thresholdPercentage 1 -v
  2. 执行均衡计划: hdfs diskbalancer -execute 计划路径
  3. 查看当前均衡任务的执行情况:hdfs diskbalancer -query hadoop102
  4. 任务完成后到hadoop102:9866查看均衡结果

HDFS集群扩容及缩容

黑白名单

  1. 白名单 touch whiteList
  2. 黑名单 touch blackList
  3. vim hdfs-site.xml

<property>
     <name>dfs.hostsname>
     <value>/opt/module/hadoop-3.3.4/etc/hadoop/whitelistvalue>
property>


<property>
     <name>dfs.hosts.excludename>
     <value>/opt/module/hadoop-3.3.4/etc/hadoop/blacklistvalue>
property>
  1. 修改白名单或黑名单后,hdfs dfsadmin -refreshNodes 刷新即可

服役新服务器

  1. 克隆后需要删除data/ logs/文件夹,然后刷新hdfs dfsadmin -refreshNodes
  2. sbin/start-balancer.sh -threshold 10 ,开启服务器内存均衡,内存之间差距小于10%

黑名单退役服务器

  1. 在黑名单中添加要退役的服务器
  2. 刷新节点hdfs dfsadmin -refreshNodes
  3. 退役成功后网页服务Logo会变成黄色,如果副本数量大于剩余机器数量会退役失败。

HDFS安全模式(故障排除)

安全模式触发

  1. 集群刚开机的时候,会有一段检查时间,当检查无误后30s自动退出安全模式
  2. 集群丢失数据,某个块的所有副本全丢了。默认情况允许丢失一个块,当丢失两个块及以上时,安全模式就不会退出。

安全模式特征

  1. 无法上传,修改,删除文件
  2. 可以查看,下载文件

安全模式操作

  1. hdfs dfsadmin -safemode leave 离开安全模式,会打印到底丢了什么。之后立刻进入安全模式,防止继续出现数据丢失。
  2. 数据的重要性:
    • 不是很重要:删除对应块的元数据,回到正常模式。
    • 数据很重要:机械硬盘还未被覆盖时仍然有可能恢复。直接断电,磁盘拿下来,找专业人士修复。

你可能感兴趣的:(大数据,yarn,hdfs)