spark入门之一 spark组件
来源:互联网 发布:电脑拍摄软件 编辑:程序博客网 时间:2024/05/16 09:05
一:spark的组件构成
1:每一个application有自己的executor的进程,它们相互隔离,每个executor中可以有多个task线程。这样可以很好的隔离各个applications,各个spark applications 不能分享数据,除非把数据写到外部系统。
2:SparkContext对象可以视为Spark应用程序的入口,主程序被称为driver program,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop Yarn、Mesos等 进行通信,从而分配到程序运行所需的资源,获取到集群运行所需的资源后,SparkContext将得到集群中其它工作节点(Worker Node) 上对应的Executors (不同的Spark应用程序有不同的Executor,它们之间也是独立的进程,Executor为应用程序提供分布式计算及数据存储功能),之后SparkContext将应用程序代码分发到各Executors,最后将任务(Task)分配给executors执行。
二:spark相关概念
Application 运行在集群上的用户程序,包含集群上的driver program 和多个executor线程组成;
Driver program application运行的main方法,并生成sparkcontext;
Cluster manager 集群资源管理器 ;
Deploy mode 部署模式 用于区别driver program的运行方式:集群模式(cluter mode),driver在集群内部启动;客户端模式(client mode),driver进程从集群外部启动;
Worker node 工作节点,运行application的节点
Executor work node的上进程,运行task并保持数据交互,每一个application有自己的executor
Task 运行于Executor中的任务单元,Spark应用程序最终被划分为经过优化后的多个任务的集合
Job 由多个转变构建的并行计算任务,具体为Spark中的action操作, 一个action就为一个job
三:Resilient Distributed Datasets (RDDs)
val data = Array(1, 2, 3, 4, 5)val distData = sc.parallelize(data)并parallelize 方法中可以指定数据分区参数,并每个分区对应一个task 如下面代码
val data = Array(1, 2, 3, 4, 5)val distData = sc.parallelize(data,10)
RDD 可以抽象的认为是一个数组,这个数组分布在集群上,RDD可以进行逻辑上的分区,每个分区叫一个partition。在spark application运行过程中,RDD经过一个个transformtion 转换算子后,最后通过Action算计触发操作;RDD是懒加载的,前面的转化并不发生实际的操作,这个转化为记录在DAG图中,只有触发action后,才实际就行操作。逻辑上每经历一个变化,RDD就会转化为新的RDD,rdd之间通过lineage关系,这个关系在容错中起到至关重要的作用。
RDD的源码中标注了5个性质:
- 一组分片(partition),即数据集的基本组成单位
- 每个分片都可以计算
- 对parent RDD的依赖,这个依赖描述了RDD之间的lineage
- 对于key-value的RDD,一个Partitioner
- 一个列表,存储存取每个partition的preferred位置。对于一个HDFS文件来说,存储每个partition所在的块的位置。
- spark入门之一 spark组件
- Spark:Spark入门
- Spark入门-什么是Spark
- spark入门
- spark入门
- Spark入门
- spark 入门
- spark入门
- spark 入门
- Spark入门
- spark 入门
- Spark 入门
- Spark入门
- Spark 入门
- Spark入门
- Spark入门
- Spark 入门篇之spark&spark sql
- Spark性能优化之一
- 《游戏编程模式》(6)
- macOS Sierra 10.12.2与intellij 2017 EAP与Docker 1.13.0
- 怎样打开64位 Ubuntu 的32位支持功能?
- java的输入输出1
- JDBC调用存储过程
- spark入门之一 spark组件
- 《游戏编程模式》(8)
- PYTHON笔记-字符串
- Ubuntu 16.04 安装 Nvidia 显卡驱动
- 1046.Shortest Distance (20)
- Git远程分支
- Android图片加载库对比:Universal-Image-Loader vs Glide vs Fresco vs Picasso几大框架的选择
- 设计模式笔记之----建造者模式
- Session保持持久化对象