1、Application
    基于spark的用户程序,包含了一个Driver Program以及集群上中多个executor;
    spark中只要有一个sparkcontext就是一个application
    启动一个spark-shell也是一个application,因为在启动shark-shell时就内置了一个sc(SparkContext的实例);
 
2、Driver Program
    运行Application的main()函数并且创建SparkContext的程序。通常用SparkContext代表Driver Program;
 
3、Cluster Manager
    在集群上获取资源的外部服务。如:standalone、yarn、mesos;
  各种不同的集群的区别:只是任务调度的粗细粒度不同,对学习spark没有影响,自己在学习时使用standalone即可;
 
4、Worker Node
    集群中任何一个可以运行Application代码的节点
    可以在Worker Node启动Executor进程;
 
5、Executor
    在Worker Node上为某Application启动一个进程,该进程负责运行任务,并且负责将数据存在硬盘或者内存中;每个Application都有各自独立的executors
    比如:应用A在一个Node上启动Executor,B应用也在同一个Node上启动Executor,他们各自的Executor是相互隔离的,运行在不同的JVM上。不同的应用对应不同的Executor;
 
6、Job
    包含很多task的并行计算,spark中的一个action对应一个job,如:collect、count、saveAsTextFile;
    用户提交的Job会提交给DAGScheduler,Job会被分解成Stage(TaskSet) DAG
    RDD的transformation只会记录对元数据的操作(map/filter),而并不会真正执行,只有action触发时才会执行job;
 
7、Stage
    个Job会被拆分成多组任务,每组任务被称为一个Stage,可称为TaskSet
    一个stage的边界往往是从某个地方取数据开始(如:sc.readTextFile),在shuffle时(如:join、reduceByKey等)终止
    一个job的结束(如:count、saveAsTextFile等)往往也是一个stage的边界;
    有两种类型的Stage:shuffle和result;
 
8、Task
    被送到executor上的工作单元
    spark分为2类task:
    在Spark中有两类Task:shuffleMapTask和ResultTask,第一类Task的输出是shuffle所需数据,第二类task的输出是result;
  stage的划分也以此为依据,shuffle之前的所有变换是一个stage,shuffle之后的操作是另一个stage;
    比如:rdd.parallize(1 to 10).foreach(println)这个操作没有shuffle,直接就输出了,那么它的task就是resulttask,stage也只有一个;
    如果rdd.map((x,1)).reduceByKey(_+_).foreach(println),这个job因为有reduce,所以有个一shuffle过程,那么reduceByKey之前是一个stage,执行shuffleMapTask,输出shuffle所需要的数据,reduceByKey到最后是一个stage,直接就输出结果了。
    如果一个job中有多次shuffle,那么每个shuffle之前都是一个stage;
 
9、Partition
    partition类似hadoop的split,计算是以partition为单位进行的

详细信息参见官方文档:http://spark.apache.org/docs/latest/cluster-overview.html

最新文章

  1. 在本机搭建SVN服务器
  2. Professional.WebGL.Programming-Chapter 2(高级WebGL编程——第二章)
  3. mysql,命令导入\导出表结构或数据
  4. RAID详解[RAID0/RAID1/RAID10/RAID5]
  5. 【BZOJ-1857】传送带 三分套三分
  6. ecshop 的transport.js 与jqueyr冲突
  7. mysql innoDB 挂了的临时解决方案
  8. 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理【转】
  9. python知识点 07-11
  10. [转]Android中内存占用的含义:(VSS,PSS,RSS,USS)
  11. DataTable ,XML和JSON相互转化
  12. Jenkins + Docker 持续集成
  13. 20175221 《Java程序设计》第8周学习总结
  14. alibaba fastjson 使用
  15. Apache ab性能测试结果分析
  16. python信息收集之子域名
  17. CF 55 D. Beautiful numbers
  18. 【BZOJ2989】数列(二进制分组,主席树)
  19. SASS详解之编译输出的样式
  20. 专题实验 SQL

热门文章

  1. 自己理解的javascript 的对象和类理解
  2. php 安装shpinx扩展
  3. bzoj1346: [Baltic2006]Coin
  4. Android sqlite管理数据库基本用法
  5. (C/C++ )Interview in English - Virtual
  6. spark基础练习(未完)
  7. SparkSQL相关语句总结
  8. SOA_环境安装系列4_Oracle SOA安装和环境搭建(案例)
  9. HttpClient和HttpURLConnection整合汇总对比
  10. JS的Data类型格式化(转)