全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
982 0
2020-12-11
初学者数据工程–熟悉Spark架构
Apache Spark是一个统一的计算引擎和一组库,用于在计算机群集上进行并行数据处理。它是为此任务开发的最活跃的开源引擎,使其成为对大数据感兴趣的任何开发人员或数据科学家的标准工具。
Spark支持多种广泛使用的编程语言(Python,Java,Scala和R),包括用于执行从SQL到流技术和机器学习的各种任务的库,Spark可以在从便携式计算机到成千上万台服务器的任何位置运行。这使得它成为一个简单的系统,可以开始并扩展到大数据处理或难以置信的大规模。
火花建筑
Apache Spark拥有来自200个组织的500多个贡献者,负责代码和225
本文是一站式资源,可在Spark体系结构图的帮助下概述Spark体系结构。
目录
Spark应用程序的架构
Spark驱动
火花执行器
集群管理器
集群管理器类型
执行模式
集群模式
客户端模式
本地模式
Spark应用程序的架构
以下是Apache Spark应用程序体系结构的高级组件:
Spark驱动
驾驶员是您的Spark应用程序“驾驶席中”的过程。它是Spark应用程序执行的控制器,并维护Spark集群的所有状态(执行程序的状态和任务)。它必须与集群管理器接口,以便实际获取物理资源并启动执行程序。
归根结底,这只是物理机上的一个过程,负责维护群集上运行的应用程序的状态。
Spark执行者
Spark执行程序是执行Spark驱动程序分配的任务的进程。执行者的一项核心职责是:承担驱动程序分配的任务,运行它们,并报告其状态(成功或失败)和结果。每个Spark应用程序都有自己的单独执行程序进程。
集群管理器
Spark驱动程序和执行程序不存在于空白中,而这正是群集管理器的所在。群集管理器负责维护将运行您的Spark应用程序的计算机群集。有点令人困惑的是,集群管理器将具有自己的“驱动程序”(有时称为“主”)和“工人”抽象。
核心区别在于它们与物理机而不是进程相关(就像在Spark中一样)。插图左侧的计算机是“群集管理器驱动程序节点”。圆圈代表在每个单独的工作程序节点上运行和管理的守护进程。到目前为止,还没有运行Spark应用程序-这些仅仅是集群管理器中的进程。
当实际运行Spark应用程序的时候,我们从集群管理器请求资源来运行它。根据我们应用程序的配置方式,它可以包含一个运行Spark驱动程序的位置,也可以仅仅是我们Spark应用程序执行者的资源。在Spark Application执行过程中,集群管理器将负责管理运行我们的应用程序的基础计算机。
Spark体系结构-集群管理器
关于此体系结构,有几点有用的注意事项:
每个应用程序都有自己的执行程序进程,这些进程在整个应用程序期间都可以保持运行状态并在多个线程中运行任务,这具有在调度端(每个驱动程序调度自己的任务)和调度程序端将应用程序彼此隔离的优势。执行程序端(来自不同应用程序的任务在不同的JVM中运行)。
但是,这也意味着,如果不将数据写入外部存储系统,则无法在不同的Spark应用程序(SparkContext实例)之间共享数据。
Spark与基础群集管理器无关。只要它可以获取执行程序进程,并且它们彼此通信,即使在还支持其他应用程序(例如Mesos / YARN)的集群管理器上运行它,也是相对容易的。
驱动程序在其整个生命周期中必须侦听并接受其执行程序的传入连接(例如,请参见网络配置部分中的spark.driver.port)。因此,驱动程序必须是可从工作程序节点访问的网络。
由于驱动程序在群集上调度任务,因此应在工作节点附近运行,最好在同一局域网上运行。如果您想将请求远程发送到集群,最好是将RPC打开到驱动程序,并让它从附近提交操作,而不是在远离工作节点的地方运行驱动程序。
集群管理器类型
该系统当前支持几个集群管理器:
单机版 – Spark附带的简单群集管理器,可轻松设置群集。
Apache Mesos –通用集群管理器,也可以运行Hadoop MapReduce和服务应用程序。
Hadoop YARN – Hadoop 2中的资源管理器。
Kubernetes –一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。
存在一个第三方项目(Spark项目不支持)来添加对Nomad作为群集管理器的支持。
执行模式
执行模式使您能够确定在运行应用程序时上述资源的物理位置。您可以选择三种模式:
集群模式
客户端模式
本地模式
集群模式
群集模式可能是运行Spark应用程序的最常见方式。在集群模式下,用户向集群管理器提交预编译的JAR,Python脚本或R脚本。然后,除了执行程序进程之外,集群管理器还在集群内部的工作程序节点上启动驱动程序进程。这意味着集群管理器负责维护所有与Spark Application相关的过程。
客户端模式
客户端模式与群集模式几乎相同,除了Spark驱动程序保留在提交应用程序的客户端计算机上。这意味着客户端计算机负责维护Spark驱动程序进程,而集群管理器则负责维护执行程序进程。这些机器通常称为网关机器或边缘节点。
本地模式
本地模式与之前的两种模式有很大不同:本地模式在一台机器上运行整个Spark应用程序。它通过该单台计算机上的线程实现并行性。这是学习Spark,测试应用程序或对本地开发进行迭代实验的常用方法。
但是,我们不建议使用本地模式来运行生产应用程序。
结论
综上所述,Spark帮助我们将密集的和高计算量的工作分解为更小,更简洁的任务,然后由工作节点执行这些任务。它还使用其基本体系结构实现了实时数据或存档数据的处理。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群