博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark核心概念
阅读量:6681 次
发布时间:2019-06-25

本文共 1634 字,大约阅读时间需要 5 分钟。

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://wjxao.baihongyu.com/

你可能感兴趣的文章
iOS md5加密
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>
使用python3来生成安全的随机密码
查看>>
41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)...
查看>>
HTTP服务器实现
查看>>
2017.03
查看>>
95Cloud 可信云计算管理系统(IaaS) ———持续数据保护(CDP)简介
查看>>
S7700交换机组网部分终端上不了网故障排查
查看>>
Scala开始开发工具
查看>>
vs2010 mvc3
查看>>
RocketMQ 源码分析 高可用
查看>>
我的友情链接
查看>>
CentOS 7.5.1804 安装配置docker
查看>>
我的友情链接
查看>>
浏览器的缓存原理
查看>>
Swift::1::变量和常量
查看>>
SFB 项目经验-79-如何升级Exchange 2016 CU10高可用 To CU11
查看>>
写在毕业后快一月
查看>>