spark - 核心概念

(1)名词解释:

概念

解释
Application

用户基于spark构建的应用程序,在集群上运行时,包含一个driver和多个executor

Driver 

Driver program 一个进程,执行Application的main方法,并创建SparkContext
Cluster program

1个额外的服务,用来申请集群的资源(standlone manager,Messos,yarn),

通过--master参数动态指定

Deploy mode

辨别driver进程启动在哪里?
(1)cluster:driver启动在集群上

  • yarn模式:NodeManager的上
  • standlone模式:worker上
(2)client:在集群外启动,在程序提交的本地启动
Worker node 

进群上任何可以运行application代码的节点

  • standlone模式:worker节点
  • yarn模式:Nodemanager中的container
Executor 在worker节点上启动的一个进程,它能够运行tasks(1个executor可运行多个task),存储数据;每个application有自己的独立的executor,不同的application之间的executor是独立的
Task 作业发到executor上执行的一个工作单元
Job 1个spark action就是一个spark job,1个job由多个task组成
Stage

每个job被划分为多个tasks的集合,这个集合就叫stage,stage之间互相依赖(类似于MapReduce中的map 和 reduce阶段)

(2)对应关系:

1个job = n个stages = n个tasks = 1个action

(3)总结:

  • 1个application由1个driver进程+多个executor进程组成
  • driver是一个进程,运行main方法,并创建SparkConext
  • executor也是一个进程用来处理tasks,存储数据,每个application的有自己的executors
  • task是发送到executor上的一个最小的工作单元
  • 1个job对应1个action,1个job会产生多个stage,1个stage对应多个task,提交的时候是以stage为单位根据satge id从后往前进行提交,就是把stage中所有的tasks发送到executor上去执行
  • 如果是standlone模式,executor运行在worker上,如果是yarn模式,executor运行在nodemanager的container上,提交时可以通过 --master 和 --deploy-mode 指定运行模式和以及使用客户端还是集群
  •   spark applications是一组独立的进程的集合,通过运行在driver中的sparkconext协调,跨spark应用程序之间数据数不共享的,除非使用第三方存储系统(hdfs,s3,alluxio等)

猜你喜欢

转载自coderlxl201209164551.iteye.com/blog/2414265