EMR(弹性MapReduce)入门之资源管理器YARN及其故障排除(七)

2020-02-25 10:17:57 浏览数 (1)

整个EMR的集群调度工具是YARN,那我们就继续学习下去吧。首先了解yarn的功能。

YARN

YARN的介绍

是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。

YARN Web UI界面详解

访问方式:登录yarn自带的yarn web ui界面,查看yarn的任务队列、资源等情况,登录方式为通过EMR控制台提供的快捷入口(组件管理->yarn->原生web ui的访问地址)进入。

从图中可以看到整个集群的一些监控信息:

代码语言:javascript复制
应用信息:9 个等待,7 个执行,51 个完成,总结 67 个;其中有 15 个 container 正在执行。
内存信息:总共 36G,使用了 30G,保留 10G
虚拟核信息:总共 20 个,使用了 15 个,保留 5 个
节点信息:可用节点 5 个,退服 0 个,丢失节点 0 个,不健康节点 0 个,重启节点 0 个
调度器信息:使用 Fair Scheduler(公平调度器),最大最小的内存和 CPU 分配信息

Application Queues 栏包含了集群的任务队列信息(以 root.hadoop 队列为例):

代码语言:javascript复制
使用的资源:内存 30720M(30G),虚拟核 15 个
正在执行的应用 7 个
等待的应用 9 个
占用最小资源:0M,0 核
占用最大资源:36860M,20 核
队列资源的稳定的公共共享
队列的瞬时公平共享资源
该队列占用资源的比例为 83.3%

Application Queues参数说明

代码语言:javascript复制
Queue State:队列状态
Used Capacity:该队列已使用的资源占该队列的百分比
Absolute Used Capacity:该队列已使用资源占root队列的百分比
Absolute Capacity:该队列默认分配的资源占root队列的百分比
Absolute Max Capacity:该队列分配的资源最大可占父队列的百分比
Used Resource:该队列使用的资源数量
Num Schedulable Applications:该队列正在调度的应用数
Num Non-Schedulable Applications:该队列没有在调度的应用数
Num Containers:该队列已启动的容器数量
Max Applications:最大可运行的应用数量(yarn.scheduler.capacity.maximum-applications * Absolute Capacity)
Max Applications Per User:单个用户最大可运行的应用数量
Max Schedulable Applications:集群最大可调度应用数量,取决于内存总量、应用最小内存分配、AM可用资源占比
Max Schedulable Applications Per User:单个用户最大可调度应用数量。
(Max Schedulable Applications * 该队列capacity占比 * 单用户可使用队列资源占比)
Configured Capacity:该队列默认分配的资源占父队列的百分比
Configured Max Capacity:该队列默认最大占父队列资源的百分比
Configured Mininum User Limit Percent:单个用户最少可使用队列资源的百分比,最大值与用户数有关
Configured User Limit Factor:每个User最多可以使用几个其他队列的资源

Yarn集群的基础排障

1、如何查看yarn集群任务运行的日志信息?

解决方法:通过错误日志或者任务日志中找到任务id(appid);在主节点运行yarn logs -applicationid appid 命令。

2、yarn集群节点不健康下线的原因?

解决方法:yarn集群节点下线一般可能是由于节点上磁盘占用超过90%。可以通过扩容磁盘来解决。

3、yarn nodemanger启动失败,启动日志中出现报错信息:

代码语言:javascript复制
WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.
ContainersMonitorImpl: NodeManager configured with 7.2 G physical memory 
allocated to containers, which is more than 80% of the total physical memory available (7.7 G). 
Thrashing might happen.

原因分析:物理内存不足,超过yarn默认值;yarn nodemanger内存配置过大。

代码语言:javascript复制
解决办法:修改yarn-site.xml中的yarn.nodemanger.resource.memory-mb、
yarn.scheduler.minimum-allocation-mb、yarn.scheduler.maximum.allocation-mb。

4、yarn服务不可用?

解决方法:通过手动添加ip和机器名称到/etc/hosts中。

5、yarn的节点丢失问题?

解决方法:去查看/data/emr/yarn/local目录和/data/emr/yarn/logs目录,这两个目录必须存在。

0 人点赞