Spark集群模式

1 组件

Spark应用在集群中以独立的进程集合运行,通过驱动程序中的SparkContext协作。

SparkContext可以与多种管理器连接。一旦连接,Spark首先获取节点上的用于计算和数据存储的执行器。其次,发送提交给SparkContext的应用代码;最后,SparkContext分发任务给执行器。

cluster-overview

注意:

  • 应用在各自独立的执行器进程中执行,应用间不能直接进行数据交互。
  • Spark对底层管理器不可知,只要能获取执行器进程并交互,可以在一个管理器下运行其他程序。
  • 驱动程序需要在程序生命周期中时刻监听并接收来自执行器的连接。因此,驱动节点必须能够被工作节点定位。
  • 由于驱动程序调度集群中的任务,因此需要尽可能接近工作节点,通常在同一个本地网络中。如果需要远程请求,可以将驱动程序接近工作节点的环境中,通过RPC连接与驱动联系。

2 管理器类型

  • Standalone –简单的,内建的
  • Apache Mesos – 可运行MapReduce服务的
  • Hadoop YARN – Hadoop 2管理器
  • Kubernetes – an open-source system for automating deployment, scaling, and management of containerized applications.开源的,自动部署、扩展和管理容器化应用

此外,第三方管理器Nomad

3 应用提交

详见application submission guide

4 监控

Web UI地址通常为http://<driver-node>:4040。详见monitoring guide

5 作业调度

Spark可以控制应用内和应用间的资源分配,详见job scheduling overview

6 术语

image-20200727212959833

参考资料

Cluster Mode Overview