Spark集群模式概述

目录

一、官方文档翻译 

二、以WC为例分析

三、通俗来讲


一、官方文档翻译 

地址:http://spark.apache.org/docs/latest/cluster-overview.html

Spark应用是以线程(processes)的方式独立运行在集群上,其协调通过你的程序的main方法的SparkContext(称为驱动程序:driver program)。

SparkContext可以运行在不同的资源上(Spark standalone、Mesos、YARN),一旦连接上,Spark会请求Cluster Mananger在集群的节点上启动executor。executor为你的应用程序计算和存储数据。接下来,SparkContext发送你的应用代码到executor。最后,SparkContext发送任务Task到executor来跑。

Spark cluster components

术语:

1、Application:Spark程序 = 1 driver + n executor

2、Driver program:main里面创建SparkContext

3、Cluster manager:资源管理器

4、Deploy mode:两种部署模式, 分别为cluster、client

  • cluster 在集群内启动driver
  • client 在客户端启动driver 

5、Worker node:工作节点

6、Executor:在worker节点上启动的进程,用来运行task和缓存数据

7、task:最小的执行单元,例如map、filter...

8、job:遇到action 产生job = n + stage

9、stage:job遇到shuffle拆分,一个stage包含了n个task

需要注意的是:

1、每个应用有自己的executor进程,默认相互隔离,因此不同的应用之间不能共享数据。

2、Spark并不关注使用的cluster manager,只要能够获取资源跑作业就OK。

3、Driver必须能够和worker nodes通信,来发送调度作业,接收信息。

4、Driver尽可能的靠近worker nodes,cluster模式

二、以WC为例分析

使用spark-shell --master local

 sc.textFile("file:///opt/mydata/olddata/wc.txt").flatMap(_.split(",")).map((_, 1)).reduceByKey(_ + _).saveAsTextFile("file:///opt/mydata/olddata/out/wc-out")

spark-shell 就是一个Application,因为底层创建sc

wc中的saveAsTextFile触发了一个job

job里面由于有reduceByKey,所以拆分成2个stage

1 stage:map((_,1))

            1个Task

2 stage:saveAsTextFile

           1个Task

 

 

三、通俗来讲

说到底,就是现实中的劳务派遣。

甲方有一个项目需要乙方来做。

甲方的负责人就是driver program,甲方负责人可以选择远程办公(deploy mode:client),也可以选择驻场办公(deploy mode:cluster),乙方负责人就是Cluster Mananger,负责通知手下来干活。该项目需要乙方三个部门(Worker Node)来施工,每个部门抽出5个人为一个项目组(executor)专门实施该项目。 每个人手上做的工作为一个(Task),部门合作的时候,产生stage,当项目完结的时候,为一个Job。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值