spark的一些核心概念
Application
构建在spark上的应用程序,由driver program 和集群上的executor组成。是
SparkContext的实例。每一个
Application都运行在一组独立的
Executor进程上。
Application jar
包含spark应用程序的jar。有时候用户需要创建一个包含其应用程序和其依赖的jar。该jar不包含hadoop和spark的jar。但是运行时需要。
Driver program
运行应用程序的main函数以及创建
SparkContext的进程
Cluster manager
获取集群资源的外部服务
(如 standalone manager, Mesos, YARN)
Deploy mode
driver进程运行模式的区别。在cluster模式下,框架在集群的内部启动driver。在client模式下,由
submitter
在集群的外部启动driver。
Worker node
在集群中能够运行应用程序代码的任何节点。
Executor
在Work Node上为应用程序运行而启动的进程。该进程运行各个task,并且在内存或者磁盘上存储数据,这些数据可以 供各个task访问。每个应用程序都有其自己的Executor。一个Executor对应一个JVM实例。
Task
发送到
executor上的work执行单元。一个Task对应JVM里面的一个线程。
Job
由多个task组成的并行计算模型。 可以使用Spark的action(如:save,collect)来得到结果。在driver的日志文件中可以看到job的信息。
Stage
每一个job都会被分成很多个小的task的集合。这些小的task称为stage。这些stage互相依赖。如map stage和reduce stage。在driver的log中可以看到stage的信息。