Spark系列—spark简介
最近比较空,总结一下spark相关的知识。
一、Spark简介
spark是一种大规模数据处理的统一分析引擎,且基于内存计算的大数据并行计算框架。具有如下特性:
1、高效性
体现在内存存储中间计算结果,基于DAG图执行引擎的优化,减少多次中间结果写HDFS开销。
2、易用性
spark有丰富的API,且支持超过80种不同的Action算子和Transformation算子,如常见的collect、foreach、map、reduce、filter、groupByKey、sortByKey等。
3、通用性
spark以RDD为基础,形成自己的生态圈;集批处理、流计算、交互式SQL查询、图计算GraphX、机器学习于一身。
4、兼容性
spark可以读取多种数据源,如HDFS、Hbase、Mysql等,并且可以使用Hadoop的YARN作为它的资源管理和调度器。
二、Spark架构设计
spark集群是有Driver、Cluster Manager、Worker Node组成。结构如下图:
其中:
Driver主要包含如下功能:
- 负责向集群申请资源
- 向master注册信息
- 负责了作业的调度和解析
Cluster Manager是集群资源管理中心,负责给Executor分配计算资源;
Worker Node是工作节点,负责完成具体的计算;
三、运行流程
1、运行环境的搭建
首先Driver会创建一个SparkContext,负责资源的申请(向Cluster Manager)、任务的分配和监控。
2、Cluster Manager启动Executor进程,并且为Executor分配计算资源。
3、Spark Context根据RDD的依赖关系构建DAG图并分解成stage(通过DAGScheduler),然后一批TaskSet提交给底层调度器TaskScheduler处理。
4、Executor向Spark Context申请task,TaskScheduler将task发送到Executor运行,Executor是以stage为单位执行task,期间Driver会监控任务运行状态。
5、Driver收到Executor任务完成的信号后会向Custer Manager发送注销信号;然后Custer Manager向Work Node发送注销信号;Work Node对应的Executor停止运行,并进行资源的释放。
四、Spark基本概念
RDD:
rdd是弹性分布式数据集的简称,是spark中的基本数据抽象,它代表一个不可变、可分区、里面元素可并行计算的集合。
DAG
是Directed Acyclic Graph(有向无环图)的简称,主要反映RDD之间的依赖关系。
Driver Program
控制程序,负责为用户提交的Application构建DAG图。
Cluster Manager
集群资源管理中心,负责为Executor分配计算资源。
Worker Node
工作节点,负责完成具体计算。
Executor
是运行在工作节点(Worker Node)上的一个进程,负责运行Task,并为应用程序Application存储数据。
Application
用户编写的Spark应用程序,其中一个Application包含多个job。
Job
作业,一个Job包含多个RDD及作用于相应RDD上的各种操作
Stage
是作业的基本调度单位,一个job(作业)会分为多组任务,每组任务被称为“阶段”。stage是一个TaskSet,将stage根据分区数可以划分为一个个的Task。
Task
任务,运行在Executor上的工作单元,是Executor中的一个线程。
一句话描述以上名词之间的关系:
用户提交的Application由多个Job组成,Job由多个Stage组成,Stage由多个Task组成。Stage是作业调度的基本单位。
Spark系列—spark简介相关推荐
- Spark 系列——Spark的Shuffle原理
目录 一.基本介绍 1.1 Lineage 1.2 窄依赖 1.3 宽依赖 二.Spark Shuffle的原理 2.1 ShuffleManager 2.2 ShuffleWriter 2.2.1 ...
- Spark 系列(一)—— Spark简介
一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...
- Spark 系列(一)—— Spark 简介
Spark 系列(一)-- Spark 简介 一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 A ...
- Spark入门实战系列--1.Spark及其生态圈简介
1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架.Spark在2013年 ...
- Spark 系列(一)—— Spark简介
一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...
- #Apache Spark系列技术直播# 第六讲【 What's New in Apache Spark 2.4? 】
Apache Spark系列技术直播第六讲 [ What's New in Apache Spark 2.4? ] Abstract(简介): This talk will provide an ov ...
- Spark之 spark简介、生态圈详解
来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorith ...
- Spark系列之Spark应用程序运行机制
声明: 文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除.感谢.转载请注明出处,感谢. By luoye ...
- 【大数据Spark系列】Spark教程:详细全部
Spark作为Apache顶级的开源项目,是一个快速.通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩.基于内存计算等特点 ...
最新文章
- 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
- linux关机 hibernate,Linux关机命令
- xampp 下安装mysql-python
- 上传问题总结(文件大小检测,大文件上传)
- Redis高可用原理
- SpringBoot的编码问题
- Redis工作笔记-Jedis的基本使用
- 如何创建和使用自引用层次结构表
- python集合补集、差集、并集_python set集合运算(交集,并集,差集,对称差集)...
- 二叉树层次遍历--广度遍历和深度遍历
- html在线发布ipa文件在哪里,打包ipa文件
- Android签名机制:生成keystore、签名、查看签名信息
- 分享Java 中如何运行字符串表达式?
- Vue学习手记02-路由创建
- Python+selenium+eclipse执行web自动化(四)控件处理
- 【Python】学习笔记2-数据类型:数组、数组循环切片
- Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗
- intellij idea 15 万恶的光标跟随
- 基于java的奖学金评定管理系统_基于java的奖学金评定系统
- 边缘计算平台能力开放