文档章节

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
深圳
项目经理
Hadoop或衰落,但核心组件生命力旺盛!

  【IT168 评论】关于Hadoop生死的讨论已经进入后半场,KPI当前,企业继续专注自己的业务发展,厂商继续包装自己的产品,重心都不再是Hadoop的命运走向。在这之中,我们可能忽略了一些问题...

it168网站
04/28
0
0
探秘Hadoop生态10:Spark架构解析以及流式计算原理

导语 spark 已经成为广告、报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spark技术的...

你的猫大哥
2017/03/08
0
0
Spark 学习资源收集【Updating】

(一)spark 相关安装部署、开发环境 1、Spark 伪分布式 & 全分布式 安装指南 http://my.oschina.net/leejun2005/blog/394928 2、Apache Spark探秘:三种分布式部署方式比较 http://dongxic...

大数据之路
2014/09/08
0
1
Spark 的Core深入(二)

Spark 的 Core 深入(二) 标签(空格分隔): Spark的部分 一、日志清洗的优化: 1.1 日志清洗有脏数据问题 rdd.partitions.length rdd.cacherdd.count 一个分区默认一个task 分区去处理默认...

flyfish225
05/08
0
0
关于Spark的基本概念和特性简介

1、Spark是什么? ○ 高可伸缩性 ○ 高容错 ○ 基于内存计算 2、Spark的生态体系(BDAS,中文:伯利克分析栈) ○ MapReduce属于Hadoop生态体系之一,Spark则属于BDAS生态体系之一 ○ Hadoop...

openthings
2015/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
20分钟前
0
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
1
0
OSChina 周四乱弹 —— 上帝对我单身年限的惩罚越来越长了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享张卫健的单曲《身体健康》 《身体健康》- 张卫健 手机党少年们想听歌,请使劲儿戳(这里) 昨天是重阳节咯, 可惜小小编辑总是晚...

小小编辑
今天
12
1
django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部