关于大数据:有数大数据基础平台之智能运维平台EasyEagle介绍集群队列篇

7次阅读

共计 3763 个字符,预计需要花费 10 分钟才能阅读完成。

他来啦,他来啦!大数据根底平台发布会中提到的智能运维平台,他来啦!
作为数据平台的用户们,下述问题始终困扰着咱们:

集群资源水位如何,利用率如何,是否须要扩容?
队列为什么最近大量工作呈现 pending,什么起因造成?
哪些工作占用了队列的大部分资源,是否正当,是否优化?
工作运行为什么这么慢,哪里呈现了问题?
工作是否能优化,放慢产出?
工作或服务出现异常,是否主动运维解决?
… …

咱们针对上述问题,研发了一款自助式、智能化的监控诊断平台——EasyEagle。旨在达到如下目标:

各层面的实时资源水位监控(集群、队列、工作、节点),包含申请以及理论应用;
帮忙平台管理员以及用户理解各自层面的资源应用情况,帮忙用户更好的进行资源优化,晋升资源利用率;
对于队列的相干问题,能很快给出诊断后果,缩小用户定位工夫;
对于工作的性能或异样,能很快给出诊断后果以及倡议;
通过对工作的诊断,能提出相干优化倡议,进而放慢工作的产出以及进步整体的资源利用率。

咱们将会从集群队列视角、工作视角、资源治理以及全链路诊断,进行分篇介绍。给各层面的用户展示目前代表性的问题,以及如何应用 EasyEagle 去发现、解决。本篇将从集群视角和队列视角进行相干的介绍。
1 集群视角
1.1 集群根底监控
集群这块,次要是针对平台管理员。他们次要关怀的问题如下:

集群资源水位如何?
资源利用率如何?
是否须要扩缩容等等

EasyEagle 提供了集群实时资源监控,并能根据所选工夫,给出时间段内资源水位的走势状况,根据此信息,管理员能分明的晓得集群闲置及忙碌的时间段,这能为正当的工作编排起到参考作用,例如将非基线工作从忙碌的基线时间段错开,将高资源耗费工作移至资源闲暇的时间段调度等。
EasyEagle 同时提供了集群任务量的汇总剖析性能,以天为维度或以月为维度,能够分明的理解到集群每天或每月的任务量数值变动,以此可能掂量最近业务的增长 / 升高状况,并联合资源水位进一步剖析集群的可扩展性以及水位变化趋势,为集群资源扩容等操作提供了数据参考。
EasyEagle 的集群概览界面,展现了如上介绍的相干指标数据。如下图例所示,展现了集群的实时资源及节点状况、集群工作数量汇总信息,以及集群资源水位等。

此外,作为 EasyEagle 的亮点之一,能够看到除了集群的内存和 CPU 的资源水位状况,咱们还引入了集群的理论资源使用率(图中绿色的线)。简略来说,在集群调配给工作应用的资源中,有多少是真正的被工作利用到的呢?EasyEagle 通过各个节点机器的理论负载和内存应用,会集成为整个集群的维度的理论资源应用状况。若发现集群可分配资源曾经满载,但理论负载却很低,那么就须要关注下,集群大规模的工作资源申请是否有节约的嫌疑。
为了可能更加直观的展现出理论资源的利用率,EasyEagle 将集群每台节点的资源利用率以散点图的模式进行展示,如下图例所示。每个点代表集群中的一个计算节点,横坐标和纵坐标别离是节点内存和 CPU 利用率。在现实的状况下,机器的内存使用率和 cpu 使用率应该较为均衡,体现在图中将会是所有点均匀分布在斜率为 1 的一条线左近。而在所示图例中,发现大多数机器节点 cpu 利用率显著偏高在 40% 左右;而内存利用率却有余 15%。那么就须要关注,集群中每台计算节点配置和虚构核及内存大小比例是否正当。

根据上述的理论案例,EasyEagle 在此模块显著能告知管理员以下信息:

集群资源水位状况,何时呈现忙碌,工作应该如何安顿调度工夫
资源的理论利用率如何,是否能够进一步优化,而不须要洽购机器
集群节点的 cpu 和内存配比是否正确,应该如何设置配比

总之,EasyEagle 可能从集群整体维度动手,对集群资源水位,资源利用状况,任务量变化趋势,机器节点利用率等大数据平台运维人员最关怀的点,进行展现与分析。
1.2 集群队列大量工作 pending 诊断
针对平台管理员除了提供集群的根底监控剖析外,目前 EasyEagle 还提供了针对集群各个队列运行状况的相干监控。
在咱们对于 hadoop 平台的实际过程中,常遇到这样的景象:用户提交的工作,期待了很久,却发现迟迟调度不起来。这样的景象较广泛,常常会集中在某一个特定的时段,且每天都会周期性的产生。若 pending 的是非核心工作,非基线工作,或不关注时效性的离线工作,集群或队列产生的工作 pending 很多时候会不被人感知,从而误以为集群不存在这样的状况;然而如果是外围工作,那大量的 pending 将会影响业务的产出。
因而,这样的景象应该须要引起留神并解决。EasyEagle 对于集群所属队列的 pending 有如下的剖析:
针对产生 pending 的起因,大抵能够分为如下两种状况:
(1)队列资源短缺,队列大量工作 pending

队列 AM 资源有余
Yarn 调度性能有余

(2)队列资源有余,队列大量工作 pending

队列自身资源有余
队列的父队列资源有余,或兄弟队列进行了资源抢占

剖析出 pending 的起因后,会给出以下数据指标:

pending 产生的队列
pending 问题产生的理论队列
配置时间段内,间断 7 天,pending 问题产生的理论队列的资源使用率趋势
配置时间段内,队列产生过 pending 的次数

如下图例所示,EasEagle 可能默认展现集群在前一天中,有哪些队列产生过 pending 的状况,问题理论产生的队列,以及呈现过 pending 的起因。

点击查看详情,可能进一步展现,问题产生的理论队列的资源利用率状况,更直观的展现出问题。如下图例所示,能够抉择间断七天的队列资源利用率,图中标出的点,示意该时段产生了 pending 的景象。

综合上述的剖析,此功能模块能够解决以下问题:

集群中局部队列呈现大量工作 pending 时,能够及时诊断,提前染指,缩小用户感知以及前置解决时长;
通过主动诊断,能够间接告知管理员队列呈现大量工作 pending 的具体起因。

2 队列视角
作为多租户的 Hadoop 集群,能够将整个集群的资源拆分成子队列的模式,以反对对多业务方共享应用集群资源,并使不同业务方之间资源隔离。在这种环境下,对于业务方,可能更偏差于理解本人业务所在队列。

队列各时间段的资源水位如何,任务调度工夫如何安顿?
队列资源的理论利用率如何,是否有优化空间,是否须要向平台申请新增资源?
某时间段队列可用资源忽然少了这么多,是哪个工作造成的?
队列在某个时间段运行特地慢,局部工作提交不下来,出了什么问题?

上述问题是业务方常常会抛给底层开发以及运维人员的。上面将会演示如何通过 EasyEagle 答复上述问题。
队列资源监控
EasyEagle 可能抉择任意时段,提供队列内存,CPU 的资源应用水位趋势,队列运行和 pending 的工作数量趋势,如下图例所示:

从下面的队列资源应用视图,业务方能很明确的获取到:

什么时间段,该队列忙碌
工作的编排,应该配置在哪个时间段

在这个队列资源应用视图的下方,EasyEagle 还提供了一个能够指定时间段或工夫点的工作列表。列表如下所示:

该工作列表中每个工作蕴含指定时间段或工夫点的资源申请程度等信息,能帮忙业务方很快的定位出:
哪个时间段,哪个工作申请了较高的资源
和集群维度的理论资源应用相似,EasyEagle 也提供了队列理论资源使用率。EasyEagle 通过工作的理论资源应用状况,聚合为队列维度的理论资源应用。因而,某个队列呈现理论资源利用率过低,也就代表了队列下的工作呈现了资源节约的状况。如下图所示,蓝色线示意了队列曾经占用的资源水位,绿色线示意队列理论的资源应用水位。

若发现了队列资源呈现的问题,如集群的资源水位很高,但资源利用率却很低,咱们晓得这肯定是因为队列中大量的工作申请资源呈现了节约导致的。想要进步队列的资源利用率,就肯定要从这些工作进行动手治理,通过肯定的形式,将工作的资源利用率进步,以此进步队列,乃至整个集群的资源利用率。
在队列的资源剖析模块,也十分详尽的提供了队列中资源耗费较高,但资源利用率低的工作列表。这个工作列表也相当于提供了优化收益最大的 top 工作信息。优先优化这些工作的资源耗费,进步利用率,能够取得最大的收益,并显著的反映在队列资源中。目前该列表返回的信息如下图例所示。

找到了待优化的工作列表,接下来就是针对单个工作的优化了,对于单个工作的资源的优化形式和策略,能够在下文中,工作资源治理性能中取得具体的阐明。
总之,在队列资源监控这个模块里,咱们能为业务方解决以下问题:

通过获取各时间段队列的资源水位,帮助业务方合理安排任务调度;
获取队列资源的理论应用状况,并列出待资源优化工作列表,帮助业务方进步队列资源利用率,降低成本;
实时理解,队列大工作(资源方面或运行时长方面)的运行状况;
为队列资源预估提供数据撑持。

3 小结
本篇围绕着集群视角和队列视角进行相干介绍。上述两个视角次要是面向数据平台的管理员等角色,他们关怀的内容次要是:集群的资源水位以及各队列运行状况,进而正当的调整工作编排以及资源配比。
在后续的篇章中,咱们将会以用户,即工作提交者的视角,进行相干的介绍。作者:网易数帆社区链接:https://juejin.cn/post/712311… 起源:稀土掘金著作权归作者所有。商业转载请分割作者取得受权,非商业转载请注明出处。

正文完
 0