视频-《 EMR 集群运维与排障》|学习笔记(一)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习视频-《 EMR 集群运维与排障》

开发者学堂课程企业运维训练营之大数据 EMR 原理与实践视频-《 EMR 集群运维与排障》学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1242/detail/18464


EMR 集群运维与排障

 

内容介绍:

一、课程内容目标及要求

二、 EMR 管控平台介绍

三、 EMR开源组件管理平台

四、 EMR 监控与告警介绍

五、 EMR 诊断工具

六、组件异常排排查

七、运行作业异常排查

八、 EMR 集群弹性伸缩

九、总结

 

我们开始今天的这个课程是我们企业大数据企业训练营的第三讲: EMR 的集群运维和排障。首先来一下自我介绍,我是来自于阿里云专家服务的大,目前是负责大数据全线产品技术支持的工作。接下来我们开始今天的课程

 

一、课程内容目标及要求

首先开始之回顾一下昨晚第二章节课讲的一些内容主要是 EMR 一些组件的介绍,像 HDFS 、 Hive 、 Hue 、 Spark 等这些开源的组件,以及自研的金融MS数据存储的组件。前面讲到了涉及到组件的技术原理,包括怎么使用会发现对 EMR 的运维同学来说,经常会遇到的问题主要有两个第一个就是自研组件异常的情况下,怎么快速的进行排障,恢复组件的正常工作另外就是对于组件的运维如何快速的基于 EMR 提供的一些相关工具,包括管控以及组件的一些开云的 UI  进行深入的了解后使集群可以更好的运维工作所以带着这个问题来开始今天的课程

本节的训练营我会从以下几个课程内容方面来展开首先是 EMR 管控的管控平台的详细介绍,因为对运维或者是开发同学来说,首先了解我们的产品,就是对 EMR 管控详细了解这样的话,在日常集群的运维过程中,可以很熟悉的或者是很快速的对集群进行管理第二个就是 EMR 提供的一些基于各个组件以及具体的底层的像 ECS 服务器的一些监控包括告警这些内容这样的话对于我们日常的运维过程中可以实时监控,或者是了解到集群的状态第三方面主要是 EMR 提供的一个弹性伸缩的功能,这一点是在很多企业在使用 EMR 的过程中是经常使用到的。因为伴随着企业的数据的增长计算数据任务越来越大,但具体成本包括可运维方面一些考虑,所以需要在任务大的时候能做到快速的一个扩容,来支持一些数据的分析和计算等等这些需求,所以第三方面我会在我会重点介绍一下 EMR的弹性伸缩
通过这次的课程培训,我们可以熟悉我们的管控平台,以及对 EMR 集群整个全链路的一个排查的思路和实践。

图片1.png

这样的话带着我们的目标来进入今天的课程详细展开来讲我这里分了部分第一部分主要是 EMR 管控平台的介绍这个很基础的一个平台,在第一节课程的时候,我们的同事也是简单的介绍了 EMR 管控平台所体现的一些功能,这里我会详细介绍结合在支持用户过程中遇到的一些案例,包括整个控制台应该重点关注哪些内容来进行讲解第二个是 EMR 开源组件的一些 UI  的介绍因为在整个排障过程中,除了 EMR 平台的一些介绍,开源组件介绍也是在运维过程中经常遇到的,比如 YARN UI  、 YARN Recourse UI  ,这样就可以通过这个实时的来关注在 YARN 上提交的的任务以及运行的状态。还有比如说 HDFS 的 UI  ,在上节课我们也大致介绍过 IDBX 的 UI  能帮助我们看到明确的哪些信息,或者需要关注哪些信息,本也会主要的介绍第三方面主要是在 EMR 监控和告警这方面的内容的介绍,。EMR 监控提供了丰富的监控的监控项,确保包括组件本身的节点服务器的以及运行任务通过这些监控以及配合告警的一个方式联动,就可以将任务组件状态以及节点的信息实时同步通知我们的运维同学一旦出现异常,我们的运维同学可以快速的介入来排查。在了解到以上三面之后,我下面会重点带着问题来介绍一下,比如说 EMR 组件异常的一些排思路和最佳方案通过这个方案可以快速的了解一旦出现组件异常的情况下,需要关注哪些信息,然后获取哪些信息,快速通过分析快速恢复组件的过程。接下来组件的服务异常是一个重要的指标,除此之外还是涉及到 EMR 任务运行的异常排查,那大数据的集群主要是跑任务对于有跑到 YARN 上的一个任务如何进行排查,会重点介绍一下排查思路会介绍一下 EMR 弹性伸缩刚才说了什么需要弹性伸缩,那如何配置弹性伸缩,如何更好的规划弹性伸缩?第六节会展开来讲

通过这节的分享说明可以归纳出两个问题一个是对于 EMR 产品如何快速的上手熟悉我们的运维工具,包括管控平台和开源组件 UI  来展开今天的课程还有就是组件异常排查的最佳方案主要是带着两个这个问题,来开始今天的课程

 

二、EMR 管控平台介绍

EMR 管控平台提供了很丰富的管理工具,然后相对于开源 HADOOP 的自建集群,比如说你本地的 RDC 自建了一个 HADOOP 集群,其实你所依赖的所有配置都是通过手动的命令或者启动来实现的,那基于开源的组件也是提供了 UI  ,但它是不具备来运维的一个工具的,它只是提供了监控或者是可查看任务运行的机制,所以 EMR 管控是我们自研的一个平台,包含了更多的信息,主要包含的内容可以从具体的控制台来详细讲来讲一下。

图片1.png

我自己搭建的一个测试集群中:

图片1.png

首先第一点的基础信息里面要关注哪些东西第一个就是软件信息这里为什么要关注这里?因为很多用户上云之前,是有本地的 RTC HADOOP 集群的,无缝上云的一个需求就要确定云上的版本开源组件的版本和本地版本的兼容,这样的话才会最小的出现由于版本问题导致的不兼容的情况或者报错等这些信息,所以这个是很关键的一个信息。

在集群服务里面,会展示出来你的集群所加载的所有涉及到开源组件或者是自研组件的运行状态。比如可以看一下 HDFS 组件,它是有具体的 DataNode 以及 NameNode 信息管控平台可以对这些组件进行重启停止等这些操作,同时在集群上也有监控组件实时的获取这些组件的信息情况配置页是所有的组件其实都一样的,和开源的提供的配置上也是一样的,像提供 HDFS site 的这个 xml 的文件,用户就可以在这里修改一些配置项,根据自定义的需求来修改这个配置或者是新增一些配置也是可以的这里集群服务重点关注一下我的集群状态是否正常,或者是某集群组件的某个服务是否正常,来判断集群的状态。

在节点管理里面主要是加载了一些服务器的列表

图片1.png

之前上节课也给大家说过主要分为三个节点,一个是 Master 的节点是管理节点还有第二部分就是 core节点,这里主要是一些 DotaNode nomain manager部署的一些节点,像 HIVE Server Spark history 这些都是部署在Master的节点,数据存储的节点和具体资源管理的节点都是部署在 core节点;那还有一种是 Task 节点,这种是面对计算场景下的一个节点组,为什么这么说?因为在越来越多的企业使用过程中,它数据在增长,但是相对于数据的增长,他们的计算任务增长是指数式的增长,所以它一方面更多的需要是计算资源,而不是存储资源,数据增长比较慢,但是数据计算任务比较快,所以这部分 Task 节点可以扩容出来,那这个节点就是单独的配,比如说磁盘相对来说很小,但是的内核计算资源都很大这是节点管理的一个介绍

健康检查的介绍,这是 EMR 作为2.0推出的一个全新的功能这个功能主要是干什么的?相对传统的 EMR HADOOP 集群,它是没有一个全局统筹来分析集群健康状态的功能的这个就能使 EMR 包括进行健康检查,这里就是主要来体现这个功能的,后面会展开来说。
访问链接和端口就是提供了一些开源组件的 UI 访问方式,访问控制台的方式,以及对应自研的一些组件的访问方式。

图片1.png

集训监控,刚开始就有体现的为什么这里的集训监控我会重点的来介绍?因为很多案例的场景下会通过集群监控的一些指标发现集群非健康的状态的,然后来实时调节对应组件的一些配置信息,比如说内存 CPU 来快速恢复集群的服务的,这个后面也会展开来说

脚本服务一眼看上去不是太好理解,为什么需要脚本服务?就是很多用户在场景下对 EMR 的集群,它不单单是跑一些离散计算的任务,可能还部署了一些自定义配合离散计算的一些服务接口,或者是离散计算的一些脚本等等这些这些需求。如果说没有这个脚本操作或是怎么操作,那就需要我们的运维同学手动的登录机器,然后比如说安装一个软件来达到我所需要的一个环境变量,这种操作是十分繁琐的假如说我一次扩容五十台或者台的一个 ECS 机器,我还要一个一个上去登录来安装,那这是很繁琐的所以这里提供了一些脚本的操作,可以将自己比如说安装第三方依赖的软件写进脚本,在扩容的时候进行执行,在服务器开出来之后,然后在具体的组件安装之前,把这些你所依赖的环境一次性的自动化的部署部署上去,脚本功能主要是体现在这

日志管理是所有的组件的管理上节课也重点介绍过,日志管理也是在我们的服务器上采集的一种是上服务器上看,或者是你在这里通过 excel 的方式看都可以的。

以上是整个管控页面的介绍,重点要关注的哪些指标,后面我也会展开的来讲的。
有了这么多管控提供的功能,所以相对于一些相对自建 HADOOP 集群,你可以看出来他的权限控制在应用上都有很大程度的提高这些是自研的一个 EMR 管理平台除此之外集群开源组件也是集成了很多自带的开源组件的一些 UI 的支持比如这里的 HDFS 、 YARN 、 Spark 、 Hue 、 HBASE 的 UI,接下来重点介绍一下以下三个 UI比如 HDFS  WebUI

图片1.png

回到集群控制页面,可以从访问链接与端口这里进入具体的 HDFS UI我们要关注哪些信息带着这个疑问进入到我们的控制台。

图片1.png

首先可以从之前群的基础信息看出它是一个高可用集群,所以从 HDFS Overview 里面可以看到集群的一些信息以及高可用的信息安全是关的 Safemode 也是关的然后这里可以看到 Jourmal 的节点信息等等,然后 NameNode Storage 主要是有两个存储需要关注,一个是DFS IMAGE ,一个文件存储 EDTS 的存储目录,这两个目录是 NameNode 的启动必须要加载文件的一个指标。

DataNode的节点要关注哪些东西?主要包含了一就是节点的数量二就是每个节点数据的分布因为在日常的的运维管理中,比如说我要加一个节点进来,存储节点就是 core节点,有 DataNode 节点进来之后,将来如果说数据存在不均衡的一个情况

图片1.png

这里列出来的数据比较少,但是也是可以显示来体现的。比如其实两个节点它会存储量比较大,然后另一个节点就存储量比较小。这个其实很简单可以造出来的在实际应用中很多用户的数据会达到几十T,某些节点几十T的情况下新上一个节点,从0开始那这个数据是十分不均衡的,所以可以借助于这个页面,一方面看一下节点状态,一方面看一下每个节点的数据分布,来通过 HDFS 的方式提供的命令proc ECS 的方式来进行一个数据的均衡,然后从这个页面可以看到进行数据均衡的状态最终达到所有的节点数据量在10%差值的状态这里数据均衡也是存在几点问题的需要注意,比如在数据均衡的时候要设置它的并发,因为并发量以及转移数据块的速度。因为在我们云上计算中,如果说你在业务的高峰期去做个数据的均衡的话,会导致整个磁盘的读写 IO 很大。所以我们建议在加节点之后,数据的均衡一般在业务的低峰期来进行开始

然后可以关注一下这个 Startup Progr ECS  ,这个是刚才我讲到的就是 DataNode 的启动过程是先加载 fsimgae 相当一个快照快照存的是什么?就是存所有的数据在 DataNode 上位置的一个映射。然后同时加载 edits , edits 记录是什么?就是收集在写入 HDFS 的时候,我会将这个数据块存在哪个节点哪个 DataNode ,具体的目录是什么都放在 edits 这个文件中这种情况下会有什么问题呢?我们常见到的包括很多用户反馈过来的时候,用户的整个集群的数据量是十分巨大的,每个节点的数据可以达到三五十T的数据,然后同时在频繁的读和写的过程,那一旦 NameNode 挂掉,比如说它的磁有问题或者是网络有问题导致 NameNode 挂掉,在拉起的时候就很慢为什么慢的过程?首先 fsimage 是个可以快速加载的,因为这个是快照存储信息不多,但是如果说挂掉之前会有大量的 edits,就是数据的写入 HDFS 会产生大量的 edits ,那他需要把所有的挂掉之前把 edits 都加一遍,这个过程中十分巨大的耗时,可能在小时级或者是天级的一个级别,才把这些 edits 来加载进来,然后 NameNode 才是真正的启启动进来所以在日常运维中 fsimage 设置的生成的时间,要根据业务量来进行调整的,如果写的确实很频繁,这个可以调低一点,让 Jourmal Jourmal  Node,如果是不高可用的Second Node来合成 fsimage 的频率快一些,减少 edits 的数量,这样才能在一旦出现 NameNode 异常的情况下,可以尽快的将 NameNode 拉起来,让整个恢复正常。

其他的就是 Browse the file system 就是网页版的查询,IDM工具之前的课程也介绍到了。

刚才我讲到这个案例,其实就是数据不均衡的情况下所进行的操作以及操作中可能需要注意的点,比如说 Balancer 线程以及网速控制这些信息,以上是 HDFS WebUI 的一个说明和关注点。

接下来看一下 YARN WebUI 。

相关文章
|
2月前
|
存储 运维 监控
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
52 0
|
4月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
111 2
|
5月前
|
运维
会员系统功能售卖之一之学习资源,余老师的优点PTF做的好,公众号做的好,自媒体运维的好,教学视频类网站,学习自媒体运维可以多看看别人视频,讲课不会讲可以用音频转文字看看人家是怎样讲的,可以在网站上视频
会员系统功能售卖之一之学习资源,余老师的优点PTF做的好,公众号做的好,自媒体运维的好,教学视频类网站,学习自媒体运维可以多看看别人视频,讲课不会讲可以用音频转文字看看人家是怎样讲的,可以在网站上视频
|
运维 应用服务中间件 nginx
【运维知识进阶篇】集群架构-Rewrite重定向(下)
【运维知识进阶篇】集群架构-Rewrite重定向(下)
91 1
|
缓存 运维 搜索推荐
【运维知识进阶篇】集群架构-Rewrite重定向(上)
【运维知识进阶篇】集群架构-Rewrite重定向
83 0
|
运维 负载均衡 中间件
【运维知识进阶篇】集群架构-Nginx动静分离详解
【运维知识进阶篇】集群架构-Nginx动静分离详解
97 0
|
7月前
|
消息中间件 运维 应用服务中间件
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
960 1
|
域名解析 运维 负载均衡
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
407 1
|
域名解析 缓存 运维
【运维知识进阶篇】集群架构-Nginx性能优化 (二)
【运维知识进阶篇】集群架构-Nginx性能优化 (二)
158 0
|
缓存 运维 网络协议
【运维知识进阶篇】集群架构-Nginx性能优化 (一)
【运维知识进阶篇】集群架构-Nginx性能优化
232 0