关于阿里云:开源大数据可观测性方案实践-助力集群运维智能化便捷化

0次阅读

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

前言

在过来的 20 年工夫,大数据技术蓬勃发展,从最开始大公司外部的秘密武器,到当初宽泛作用于简直所有行业。通过应用大数据技术剖析存量和实时的数据,可能更加全面清晰地洞察商业的实质。在商业节奏日益放慢和倒退越来越迅猛的明天,越来越多的企业意识到大数据分析的价值,并投入了大量的工夫人力等资源。与此同时,从晚期的简略报表,到搜广推(搜寻广告举荐)的个性化需要,再到最近异样火爆的人机智能交互技术 ChatGPT,大数据利用对算力的要求呈指数级增长。如何以更低的老本、更加稳固地提供更高的算力,成为大数据行业须要摸索和解决的外围问题。

另一方面,为了满足企业一直增长的大数据处理需要,从晚期的 Hadoop、Hive,到 Spark、Presto、Flink,再到近几年火爆的数据湖、OLAP,涌现出了多种多样的大数据技术。尽管很多大数据技术都是开源的,能够通过网络获取到一些技术指南、最佳实际等,然而仍旧不足从集群整体维度和数据处理全链路来剖析和晋升大数据栈“效力”的无效办法。

可观测性最早起源于应用服务,旨在随时理解整个利用栈中产生的状况。通过在网络、基础设施和应用程序中收集、关联、聚合和剖析数据,以便深刻理解零碎的行为、性能和运行状况。可观测性能够用“观测 - 判断 - 优化 - 再观测”这一闭环来简略解释。可观测性是晋升利用效率的根底和要害,但在大数据集群方面始终不足实际,这次要是由前述大数据技术的多样性和复杂性导致的。在本篇文章中,咱们将介绍大数据集群畛域所需的可观测性,实际大数据集群可观测所须要的条件和面临的挑战,以及阿里云 EMR 产品如何通过 EMR Doctor 实现大数据可观测并向用户提供相干能力。

大数据可观测性介绍

当咱们提及大数据的时候,脑中会浮现出各种技术,从 Kafka 到 HDFS、OSS,再到 YARN 和目前倒退更好的 Kubernetes,还有下层的各种计算引擎如 Spark,Flink 和 Tez 等,甚至是深度学习和 OLAP 等业务相干技术。

只管大数据技术纷繁复杂,咱们能够把大数据各种技术自顶向下分为如下几层:计算引擎,资源调度层,存储等几个维度。由这些互相独立又相互关联的子系统一起构建了整体的大数据系统,为企业的大数据平台提供基础设施。大数据的可观测性指的就是通过指标采集,元数据采集等技术获取到上述各个系统的洞察数据,而不是简略的指标列举。

大数据可观测的后果可能为企业带来如下价值:

  • 通过资源剖析与倡议,辅助用户一直的优化,带来更正当的资源利用和更衰弱的集群应用
  • 通过问题提醒和异样揭示,加重开发与运维人员的工作量,为企业大数据开发带来更高的效率
  • 通过及时的规定剖析、根因剖析等,疾速的定位大数据集群问题,缩小集群因为故障带来的复原工夫

大数据可观测性场景剖析

尽快后面提到,大数据可观测性能够为咱们带来诸多益处,但现实情况是,很少有企业可能在大数据畛域做好可观测性,甚至大部分企业还没有涉足这一畛域。咱们简略地剖析一下大数据可观测性的应用场景。

咱们先看一下企业中应用大数据利用的一个根本形成,通常企业中应用大数据的人群能够被分为如下几类:

  • 数据分析师,数据科学家以及数据工程师,能够被统称为集群用户。
  • 数据团队,包含运维团队等能够被统称为集群管理员。
  • CIO/CTO/CEO 等能够被统称为管理层。

将集群中的角色细分后,咱们其实能够看到,这三种不同的角色对大数据集群需要是不一样的,上面别离介绍一下这三种角色对于可观测性的不同要求。

大数据可观测性的用户画像

集群用户的需要

集群用户间接应用集群,提交各种工作到集群中,并产出数据,是为企业获取间接价值的群体。集群用户提交的工作多种多样,从批处理的 Hive on MR, SparkSQL 到流式的 Flink 工作以及 Ad-hoc 的 Presto 工作等。集群用户通过这些计算框架等间接构建下层的利用,如用户大盘,营销热点等。

对于集群用户来说,最关怀的是工作的运行状况以及优化办法,集群用户常见的需要如下:

  • 是否将我的工作更快的实现?
  • 工作失败了,到底是什么导致的?
  • 我的工作明天跑不进去,然而之前都能跑,是什么导致的?
  • 明天的日报比昨天晚出了 2 个小时,是哪个流程造成的?

集群管理员的需要

集群管理员负责保护大数据集群的稳定性,蕴含大数据集群软件设施,甚至包含底层的 IaaS 资源的稳固运行。在企业中尽管集群管理员不间接产出具体产品,然而通过对集群的稳定性晋升以及整体的效率晋升,会间接的晋升整个集群的应用效率,从而晋升企业的竞争力。

对于集群管理员来说,他须要理解集群整体的运行状态,集群潜在的危险以及对于危险可能找到对应的负责方进行解决。集群管理员常见的需要如下:

  • HDFS 中产生了大量的小文件,是否找到对应的应用方进行清理?
  • 昨天集群中占用最多计算资源的应用方是哪些,这些是否正当,可能进行多大程度的优化?
  • 哪些工作运行了最长的工夫,占用最多的资源?
  • 集群当初感觉有问题,到底是什么起因导致的?是因为工作导致的,还是 HDFS 呈现瓶颈?

管理层的需要

管理层不太关注大数据应用的具体技术,更关注大数据可能给企业带来的价值以及整体的投资回报比,对于老本也有着较强的需要,包含资源优化,老本摊派等。常见的管理层的需要如下:

  • 现有的集群在扩容前是否曾经运行在较高的水位,是否还有优化空间?
  • 集群从哪个方面可能进行资源优化,优化的成果如何?
  • 当初集群的破费中,不同业务的占比如何,是否与产出成正比?

剖析完三种角色对于大数据可观测性的不同需要,咱们能够总结出,不同的角色对于大数据可观测性都有十分强的需要。然而现阶段,大数据可观测并不是大数据集群的标配,无奈满足各个角色的需要。而造成这一景象的起因因为首先大数据软件栈太过繁冗,可能全副理解各个框架的人才比比皆是,而这些常识是大数据可观测性的一个前提条件。另一个起因是老本思考,构建一整套大数据可观测零碎须要多种技术,较长的链路以及简单的技术,这对于个别的企业来说累赘较重且很难量化产出。

大数据可观测性技术初探

大数据可观测性倒退历程

在实际大数据可观测的过程中,须要经验四个阶段,每一个阶段的都是下一个阶段的必要组成,并为用户提供越来越多的业务价值。

  • 第一阶段,次要依据各个大数据组件提供的接口采集各个组建的 metrics 信息等,在这一阶段须要有大数据平台教训的人才来对这些 metrics 进行剖析,可能失去根底的组件衰弱状态、组件压力状态等信息,在呈现问题的时候须要剖析历史的 metrics 信息进行推断,失去潜在可能的问题。
  • 第二阶段,除了采集各个组件的根底 metrics 外,还对集群中的工作,cpu 资源,调度的队列信息等进行全面的采集,除了采集外,还须要对这些信息进行关联,获取到呈现问题的根本原因。在这一阶段,除了采集更多的信息外,更重要的是对采集的信息进行关联,失去问题的实质起因。
  • 第三阶段,在第二阶段的根底上,依据规定等把相应的解决计划反馈给用户,用户依据提醒进行自运维操作,甚至倒退到更高级的阶段,在底层的自愈零碎可能自动化的对问题进行解决,缩小股长工夫。
  • 第四阶段,基于后面个阶段的积攒,依据多种问题产生的法则总结,或者基于规定,或者基于炽热的 AI 技术,可能在故障解决之前可能及时预警,及早的排除隐患,将故障毁灭在产生前。

从这四个阶段阐明来看,每一个阶段都是在前一个阶段实现的根底上再进行数据在加工,产生更高质量的服务,当然了,随着要求的晋升,技术难度和广度也更加简单。

大数据可观测性的技术要求

后面提到大数据可观测性在整体技术上要求很高,普通用户对于构建这一流程存在难度,这里认真探讨一下这方面的起因。

首先在实际大数据可观测性的过程中,须要对多种组件、引擎、调度零碎都要理解。比方对于 Hive on Tez 须要理解 Tez 的状态机转换,在不同的阶段须要获取不同的 metrics 和 events;对于 Spark 须要理解各个 stage 阶段采集不同的数据;对于 HDFS 须要理解元数据 Image 解析流程;对于 ResourceManager 须要理解不同的队列在各个优先级不同的状况下的调度策略。

如果想做好全链路的大数据可观测零碎,须要对整个集群中应用的各个组件,各个引擎等有着比拟深刻的理解,并且不像 web 利用监测造成标准化,各个大数据组件和引擎采集等互不雷同,没有一个对立的规范可能进行采集,然而彼此之间却互相关联,比方一个 Hive 的工作有一个 session id,在 YARN 上 是一个 ApplicationID,相互之间须要做映射解决。

其次,除了采集认为,整个的大数据可观测零碎还有一个简单的链路,如下图:

在采集零碎,须要有足够的教训可能获取所须要的必要数据。

  • 入仓阶段,须要对采集的数据进行对立收集治理,不便前面的剖析。
  • 分析阶段,依据收集形式的不同,能够采纳实时剖析或者批处理剖析等。
  • 展现阶段,将剖析的后果全面无效的反馈给客户,并且可能疾速的迭代。

在这几个阶段中,都须要一个全链路的监控零碎,保障了整个零碎的稳定性和有效性。

在这个链路过程中,波及到了大数据各个组建的内核剖析,jvm 应用剖析,采集链路,收集链路、流式解决剖析,批处理剖析,前后端技术等等,能够说相当简单。这也是为什么大数据可观测性没有宽泛的成为业界规范的起因。

阿里云 EMR 在大数据可观测性的实际

自 2016 年阿里云推出 EMR 以来,阿里云 EMR 团队始终致力于为客户提供高附加值产品,解决大数据集群的痛点,如晋升性能,升高资源老本,晋升运维效率等能力。倒退至今,咱们曾经为大量客户提供了欠缺的半托管服务,依靠于社区专家的人才积攒,场景的丰盛多样,咱们在大数据可观测性以及大数据管理方面积攒了大量的教训,为咱们的大数据可观测性实际提供了松软的根底。

在 2022 年 12 月,阿里云 EMR 正式公布了云原生开源大数据平台 EMR 2.0,降级后的开源大数据平台在老本持平的状况下,扩缩容性能最高可晋升 6 倍。EMR 2.0 为客户提供了欠缺的大数据可观测性能力,通过集群监控,咱们提供了齐备的监控指标以及巡检项,及时的揭示用户集群中目前呈现的问题。通过 EMR Doctor 健康检查,咱们为客户提供全面的大数据可观测能力,提供了从存储、计算的多方面,集群维度的衰弱评估,为客户提供开箱即用的大数据可观测平台,辅助晋升客户整体的集群应用效率,解决潜在的问题。

EMR Doctor 为阿里云 EMR 客户提供较为齐备的大数据可观测产品,咱们提供实时和日报两种形式,为集群用户提供不同角度的可观测计划。EMR Doctor 提供的性能包含如下:

  • EMR Doctor 提供集群的日报性能,并提供量化打分、智能倡议,用户能够清晰到获取到集群的衰弱状态以及改良倡议
  • EMR Doctor 提供集群的实时检测性能,实时的对集群工作进行剖析,异样检测,对组件状态进行查看剖析,找到潜在的问题和改良倡议
  • EMR Doctor 对多数据源进行采集、交融剖析,并依据智能算法进行智能诊断剖析,缩小大数据平台沉重和反复的劳动

EMR Doctor 性能介绍

EMR Doctor 提供日报和实时检测两种状态的性能,从两个维度辅助客户在大数据可观测性上进行实际。

日报性能

在日报中,咱们会保留 30 天的集群日报剖析,以分数的模式定量的给客户集群打分,在日报具体报告中,咱们会给客户客户具体的剖析,剖析到客户不同组件,不同维度的一些理论问题。

除了打分之外,咱们在每个模块还提供用户对现有问题可操作的解决方案,如下图计算资源剖析中,咱们列举出内存利用率低的问题,并倡议用户依据咱们提供的作业数据进行优化。

EMR Doctor 不仅在集群维度进行打分、剖析,对 metrics 数据,元数据进行剖析,对于具体的细节数据,比方工作运行等,也给出了剖析数据,满足应用方的需要。比方对于计算工作,咱们会给出 Top 50 算力应用的具体阐明,如 appid,sql 语句,引擎类型,算力应用,配置信息以及评分和衰弱状态,并依据问题进行倡议。

此外,咱们依据不同组大数据组件的需要,提供多种的看板,如在 hive 中咱们能够对库、表问题进行剖析,Hive 表的一些详细信息剖析如下图。

实时性能

在实时性能中,EMR Doctor 为用户提供最近 5 分钟粒度的集群剖析,着重于集群的问题排查,尤其是多种因素引起的问题汇总,取得潜在的根因。目前,实时剖析之前多种计算引擎和 YARN 的剖析。

如下图,通过对 5 分钟数据的汇总,可能取得用户的一些工作问题,如数据歪斜、长尾,资源有余危险等,并且给出倡议。

总结

整体产品上,EMR Doctor 为大数据客户提供一个集群维度的衰弱状态,让大数据集群可观测、可量化,为管理层,集群管理员以及用户提供不同的视角去理解现有集群的衰弱状况,满足各方的需要,从而推动大数据集群更衰弱的倒退。此外,EMR 平台在一直的倒退演进,对于大数据可观测性的实际会越发深刻,更多的组件,更多的细化剖析都会随着产品迭代一直退出,冀望带给 EMR 客户更好的高附加值体验。

作者:燕回 @阿里云

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0