Monitoring Apache Spark 面临新挑战

简介:
文章讲的是 Monitoring Apache Spark 面临新挑战大数据处理已经进入了新时代,数据的复杂度越来越高,人们对数据实时处理的要求也越来越高。新时代带来了很多的新改变,但是最大程度创造数据价值是大数据时代不变的宗旨。随着实时数据处理的用例越来越多,实时数据处理框架也丰富起来,例如, Apache Spark、Storm、 Heron、 Flink、Apex、 Kafka Streams 等等。每一种框架都有其特定的适用场景,但是框架多样化也带来了一些问题,增加了数据处理的复杂性,增加了运营难度。

  Apache Spark是当前最流行的数据处理技术,下面我们就来回顾一下Spark的基本知识。

  Spark 是什么?

  Spark是大数据处理的一种通用框架,主要应用在批处理和流式数据。下面我们来看一下Spark的执行模型以及Spark架构的组成部分。

Monitoring Apache Spark 面临新挑战

  1.Spark Manager和Master Manager主要运行在以下模式中:

         Standalone: 单一的cluster manager,管理方便。

         Mesos: 公司常用模式,使用方便灵活。

         Yarn:是目前最有前景的部署模式,默认配置为Hadoop 2.0。

  2.Spark Worker: 运行在standalone模式下,是Spark的工作节点,用于执行提交的作业。

  3.Spark Executor: 真正执行作业的地方,一个集群一般包含多个Executor,每个Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个Task。

  4.Spark Driver: 一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler。

  Spark Driver会创建一个Spark Context,并与Manager、Master通信,在worker节点上获取资源。Worker在本地为每个应用创建executor。完成之后,Driver和Executor就可以直接进行通信了。工作过程中,worker会一直监视Executor的情况。Driver中的DAGScheduler会根据用户程序,生成执行计划,并调度执行,Driver等程序全部结束之后才会结束。

  Spark应用程序的执行是由很多组件共同协作来完成的。所以,如果要在生产环境中部署Spark,那么就要时刻监控不同组件,了解组件性能参数,当发生错误时,要能够及时报警,合理处置。

  Monitoring Spark Streaming 面临的挑战

  Spark UI提供了仪表板功能,但是如果你想要投入实际生产,仅仅安装这个是远远不够的。必须要能够时刻监控Spark的内部运作和其组件的情况。

  我们要分三个层面来监控Spark:

  1.Spark的基础组成部分:Master、Standalone、Mesos、Yarn、Workers

  2.Applications :Driver、Executors

  3.Underlying hosts:Disks、CPU、网络

  这三个层面是相互依存、密不可分的。如果主机或者磁盘发生故障,那么Spark的基础设施就会发生问题进而影响到应用程序。所以,在这三层之间建立相关的洞察是至关重要的。这时,你就需要有一套监控系统来监控错误发生在哪一层。如果没有这个系统,那么势必得花费几倍的时间去查找问题出在哪里。

  OpsClarity成功解决了这个问题,它可以自动发现数据管道和应用中的全部服务的拓扑结构,并用红,绿,橙三种颜色来标记接口,能够更加快速的对问题做出响应。

Monitoring Apache Spark 面临新挑战
▲OpsClarity 的界面展示

  如何配置Monitoring

  Spark通过不同的端点为每个组件提供metric。例如,你想查看Spark Driver的详细信息,你只需知道它的URL,Spark就可以自动访问该URL。在Driver中有一个典型的问题,就是如何判断哪些worker在工作并识别出它的UI端口。其实,我们可以把客户端的Driver当做固定的URL端点。该软件能够自动找出应用程序中运行的Driver,然后收集每个端口的metric。

  类似于Spark这样的框架,集群是可以动态调整大小的。所以,必须确保新增的组件也可以自动配置监控。另外,在一个executor发生故障时,启用另一个executor的情况下不应该出现警报。

  检查Spark应用程序。在Driver发生故障时,应用程序需要连接到别的application context和worker节点上仍然可以使用。在这种情况下,metric collection、port checks 和 monitor接口都需要移植到新的Driver上 。

  拓扑监测和自动配置功能能够实时监测Spark基础设施发生的变化,无需人为干预。


作者:田晓旭

来源:IT168

原文链接:Monitoring Apache Spark 面临新挑战

相关文章
|
4月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
128 1
|
7月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
196 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
6月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
112 0
|
6月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
272 0
|
8月前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
228 6
|
7月前
|
分布式计算 Apache Spark
|
8月前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
8月前
|
消息中间件 分布式计算 关系型数据库
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
121 0
|
3月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
264 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
4月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
102 0

推荐镜像

更多