文档章节

Spark (一) 生态与架构

bigsloth
 bigsloth
发布于 2016/10/06 16:23
字数 904
阅读 47
收藏 1

伯克利数据分析栈BDAS

 

Spark开发视图

deploy:含有Spark部署与启动运行的代码。
 

common:不是一个文件夹,而是代表Spark通用的类和逻辑实现,有5000行代码。
 

metrics:是运行时状态监控逻辑代码,Executor中含有Worker节点负责计算的逻辑代码。
 

partial:含有近似评估代码。
 

network:含有集群通信模块代码。
 

serializer:含有序列化模块的代码。
 

storage:含有存储模块的代码。
 

ui:含有监控界面的代码逻辑。其他的代码模块分别是对Spark生态系统中其他组件的实现。
 

streaming:是Spark Streaming的实现代码。
 

YARN:是Spark on YARN的部分实现代码。
 

graphx:含有GraphX实现代码。
 

interpreter:代码交互式Shell的代码量为3300行。
 

mllib:代表MLlib算法实现的代码量。
 

sql代表Spark SQL的代码量。

 

逻辑架构

ClusterManager:在Standalone模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器。
 

Worker:从节点,负责控制计算节点,启动Executor或Driver。在YARN模式中为NodeManager,负责计算节点的控制。
 

Driver:运行Application的main()函数并创建SparkContext。
 

Executor:执行器,在worker node上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executors。
 

SparkContext:整个应用的上下文,控制应用的生命周期。
 

RDD:Spark的基本计算单元,一组RDD可形成执行的有向无环图RDD Graph。
 

DAG Scheduler:根据作业(Job)构建基于Stage的DAG,并提交Stage给TaskScheduler。
 

TaskScheduler:将任务(Task)分发给Executor执行。
 

SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。
 

SparkEnv内创建并包含如下一些重要组件的引用。
 

MapOutPutTracker:负责Shuffle元信息的存储。
 

BroadcastManager:负责广播变量的控制与元信息的存储。
 

BlockManager:负责存储管理、创建和查找块。
 

MetricsSystem:监控运行时性能指标信息。
 

SparkConf:负责存储配置信息。

 

RDD的物理形式

Block-Manager管理RDD的物理分区,每个Block就是节点上对应的一个数据块,可以存储在内存或者磁盘。而RDD中的partition是一个逻辑数据块,对应相应的物理块Block。本质上一个RDD在代码中相当于是数据的一个元数据结构,存储着数据分区及其逻辑结构映射关系,存储着RDD之前的依赖转换关系。

物理上,RDD对象实质上是一个元数据结构,存储着Block、Node等的映射关系,以及其他的元数据信息。一个RDD就是一组分区,在物理数据存储上,RDD的每个分区对应的就是一个Block,Block可以存储在内存,当内存不够时可以存储到磁盘上。

每个Block中存储着RDD所有数据项的一个子集,暴露给用户的可以是一个Block的迭代器(例如,用户可以通过mapPartitions获得分区迭代器进行操作),也可以就是一个数据项(例如,通过map函数对每个数据项并行计算)

如果是从HDFS 等外部存储作为输入数据源,数据按照HDFS中的数据分布策略进行数据分区,HDFS中的一个Block对应Spark的一个分区。同时Spark支持重分区,数据通过Spark默认的或者用户自定义的分区器决定数据块分布在哪些节点

 

本文转载自:

共有 人打赏支持
bigsloth
粉丝 4
博文 56
码字总数 47326
作品 0
深圳
项目经理
私信 提问
SequoiaDB x Spark 新主流架构引领企业级应用

6月,汇集当今大数据界精英的Spark Summit 2017盛大召开,Spark作为当今最炙手可热的大数据技术框架,向全世界展示了最新的技术成果、生态体系及未来发展规划。 巨杉作为业内领先的分布式数据...

巨杉数据库
2017/07/03
0
0
MapReduce作业大规模迁移Apache Spark在百度的实践

本文来自于2018年11月3日在上海举办的上海Spark+AI第十五次聚会。分享者叶先进,百度智能云技术二部, 高级研发工程师, 目前专注于分布式计算方向. 参与 Baidu 内部的 MR/Spark 的计算引擎研发...

大数据猿
11/13
0
0
突破DBMS局限性,阿里借力Spark提升查询性能

我们知道SQL Server是一款技术上和商业上都很成功的产品,这一次微软选择拥抱Spark大数据生态,着实令人有些惊讶。国内的几款产品也丝毫不落后,阿里云的DRDS、腾讯云TDSQL也都各自推出了与S...

技术小能手
11/05
0
0
从Hadoop到Spark的架构实践

当下,Spark已经在国内得到了广泛的认可和支持:2014年,Spark Summit China在北京召开,场面火爆;同年,Spark Meetup在北京、上海、深圳和杭州四个城市举办,其中仅北京就成功举办了5次,内...

Emilypz
2015/10/10
1K
0
Spark cluster 部署

Spark 框架 Spark与Storm的对比 对于Storm来说: 1、建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析 2、此外,如果对于实时计算的...

meteor_hy
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spak—— sparkCore源码解析之RangePartitioner源码

   分区过程概览 RangePartitioner分区执行原理: 计算总体的数据抽样大小sampleSize,计算规则是:至少每个分区抽取20个数据或者最多1M的数据量。 根据sampleSize和分区数量计算每个分区的...

freeli
23分钟前
1
0
从内部自用到对外服务,配置管理的演进和设计优化实践

本文整理自阿里巴巴中间件技术专家彦林在中国开源年会上的分享,通过此文,您将了解到: 微服务给配置管理所带来的变化 配置管理演进过程中的设计思考 配置管理开源后的新探索 配置中心控制台...

阿里云官方博客
24分钟前
1
0
MySQL用户管理,常用MySQL语句、MySQL数据库备份恢复

12月6日任务 13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复 13.4 mysql用户管理 grant all on *.* to 'user1' identified by 'passwd'; grant SELECT,UPDATE,INSERT on db......

zgxlinux
25分钟前
3
0
Spring异常之Druid – unregister mbean error

Spring异常之Druid – unregister mbean error 2017年04月19日 12:13:42 Dr.Zhu 阅读数:6688 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt_fucker/arti...

linjin200
30分钟前
1
0
微信小程序webview问题

今天在改小程序的时候在使用webview的时候切换webview的地址行为,出现了诡异的情况。 默认querystring里会有多个?符号,使用的时候被微信给截取了,导致程序找不到改页面。 而且querystri...

钟元OSS
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部