您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页从零开始学习Spark(八)在集群上运行Spark

从零开始学习Spark(八)在集群上运行Spark

来源:二三四教育网

在集群上运行Spark

之前的所有实例中Spark都是运行在本地模式下,实际项目中应该要运行到集群中。本地模式下的代码完全可以运行在集群中,因此在测试开发阶段变得非常方便。

本部分会先简单介绍Spark的运行时架构,并讨论集群运行时的一般步骤,具体的使用实例会在今后的实战中详细说明。

1. Spark的运行时架构

在分布式环境下,Spark集群采用的是主 / 从结构。

在一个Spark集群中,有一个节点负责中央协调,调度各个分布式工作节点。这个中央协调节点被称为驱动器(Driver)节点。与之对应的工作节点被称为执行器(executor)节点。

Spark应用通过一个叫作集群管理器(Cluster Manager)的外部服务在集群中的机器上启 动。Spark自带的集群管理器被称为独立集群管理器。Spark也能运行在Hadoop YARN和Apache Mesos这两大开源集群管理器上。

Spark运行时架构

驱动器节点

Spark 驱动器是执行你的程序中的main()方法的进程。在本地模式中,Spark-shell就自动启动了一个驱动器程序。

驱动器程序主要完成两个任务:把用户程序转为任务,为执行器节点调度任务。

执行器节点

Spark应用启动时,执行器节点就被同时启动。如果有执行器节点发生了异常或崩溃,Spark应用也可以继续执行。

执行器进 程有两大作用:第一,它们负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程; 第二,它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的RDD提供内存式存储。RDD是直接缓存在执行器进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

集群管理器

Spark依赖于集群管理器来启动执行器节点,而在某些特殊情况下,也依赖集群管理器来启动驱动器节点。

2. 集群上运行Spark的一般步骤

(1) 用户通过 spark-submit 脚本提交应用。

(2) spark-submit 脚本启动驱动器程序,调用用户定义的 main() 方法。

(3) 驱动器程序与集群管理器通信,申请资源以启动执行器节点。

(4) 集群管理器为驱动器程序启动执行器节点。

(5) 驱动器进程执行用户应用中的操作。根据程序中所定义的对 RDD 的转化操作和行动操 作,驱动器节点把工作以任务的形式发送到执行器进程。

(6) 任务在执行器程序中进行计算并保存结果。

(7) 如果驱动器程序的 main() 方法退出,或者调用了 SparkContext.stop(),驱动器程序会终止执行器进程,并且通过集群管理器释放资源。

3. 其余未详细介绍内容

(九)Spark调优与调试

这部分涉及到一些调优,监控Spark集群的方式。

(十)Spark SQL

(十一)Spark Streaming

有时数据是以数据流形式实时到达的,这个时候就要使用Spark Streaming来处理这种形式的数据

(十二)基于MLlib的机器学习

这部分介绍了非常有用的MLlib库,它提供了一些非常适合机器学习的数据结构,以及RDD操作,让机器学习变得非常方便。

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务