运维开发网

spark官方文档翻译_Cluster Mode Overview

运维开发网 https://www.qedev.com 2020-04-01 09:17 出处:网络 作者:运维开发网整理
集群模式概述 本文档简要概述了Spark如何在集群上运行,使得其中的部件更容易理解。通读“应用提交指南”来学习如何在集群中发布一个应用。 组成部分 Spark应用在集群中作为独立的进程集合来运行,通过主程序(driver program)中的SparkContext来协调。 具体地,为了运行一个集群,SparkContext可以连接到一些Cluster Manager(要么是Spark自身的sta

集群模式概述

本文档简要概述了Spark如何在集群上运行,使得其中的部件更容易理解。通读“应用提交指南”来学习如何在集群中发布一个应用。

组成部分

Spark应用在集群中作为独立的进程集合来运行,通过主程序(driver program)中的SparkContext来协调。

spark官方文档翻译_Cluster Mode Overview

具体地,为了运行一个集群,SparkContext可以连接到一些Cluster Manager(要么是Spark自身的standalone manager,Mesos,或是YARN),Cluster Manager在应用间分配资源。一旦连接,Spark获取集群中各个点的executor,executor是为程序执行计算和存储数据的进程。接着,它将你的应用代码(通过传送给SparkContext的JAR或Python文件)传送给执行器。最后,SparkContext传送任务给执行器来执行。

关于该架构有几点有用的要指出:

1.  每个应用获取它自己的执行器进程,进程在整个应用过程中运行并以多线程方式运行任务。它带来的好处是在调度端(每一个驱动调度它自身的任务)和执行端(在不同JVM中运行的不同应用中的任务)都将应用之间隔离开来。然而,这也意味着如果不将其写入一个外部的存储系统,数据将不能在不同的Spark应用之间共享(SparkContext的实例)。

2.  Spark对下层的cluster manager是不可知的。只要它可以获取executor进程,并且相互连接,那么即使是在一个承担了其他应用的cluster manager上运行也是相对容易的。

3.  Driver program在整个生命周期内必须听候和接受即将到来的来自它的executors的连接。像这样,driver program必须是对worker nodes可寻址的。

4.  因为集群上的driver调度任务,所以driver应该贴近worker nodes运行,最好在同一局域网内。如果两者相隔较远的话,最好对driver建立一个RPC。

 

附录:名词解释

Application应用:在Spark上构建的用户程序,由集群上的一个driver program和executors组成。即Application =一个driver + 多个executor。

Application jar:一个包含用户的Spark Application的jar。在某些情况下,用户会创建一个包含其依赖的“uber jar”。用户的jar千万不要包含Hadoop或Spark库,这些库会在运行时添加。

Driver Program:运行应用的main()方法并创建SparkContext的进程。

Cluster manager:一个外部服务,用于获取集群资源(例如,standalone manager, Mesos, YARN)。 【注:并在应用间分配资源】

Worker node:可以运行Application代码的集群节点。

Executor:为运行Application而在worker node上启动的进程,这些进程运行tasks,并且将数据保存在内存或硬盘上。每个Application都有自己的一组executors。

Task:一个被发送到某一executor的工作单元。

Job:由Spark action触发的由多个tasks组成的并行计算。

Stage:每一个job分成tasks的小集合,每一组tasks被称为一个stage,这些stage相互依赖。类似于MapReduce计算模型中的map和reducestage。

0

精彩评论

暂无评论...
验证码 换一张
取 消