最近比较空,总结一下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简介相关推荐

  1. Spark 系列——Spark的Shuffle原理

    目录 一.基本介绍 1.1 Lineage 1.2 窄依赖 1.3 宽依赖 二.Spark Shuffle的原理 2.1 ShuffleManager 2.2 ShuffleWriter 2.2.1 ...

  2. Spark 系列(一)—— Spark简介

    一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...

  3. Spark 系列(一)—— Spark 简介

    Spark 系列(一)-- Spark 简介 一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 A ...

  4. Spark入门实战系列--1.Spark及其生态圈简介

    1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架.Spark在2013年 ...

  5. Spark 系列(一)—— Spark简介

    一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...

  6. #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 ...

  7. Spark之 spark简介、生态圈详解

    来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorith ...

  8. Spark系列之Spark应用程序运行机制

    声明:         文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除.感谢.转载请注明出处,感谢. By luoye ...

  9. 【大数据Spark系列】Spark教程:详细全部

    Spark作为Apache顶级的开源项目,是一个快速.通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩.基于内存计算等特点 ...

最新文章

  1. 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
  2. linux关机 hibernate,Linux关机命令
  3. xampp 下安装mysql-python
  4. 上传问题总结(文件大小检测,大文件上传)
  5. Redis高可用原理
  6. SpringBoot的编码问题
  7. Redis工作笔记-Jedis的基本使用
  8. 如何创建和使用自引用层次结构表
  9. python集合补集、差集、并集_python set集合运算(交集,并集,差集,对称差集)...
  10. 二叉树层次遍历--广度遍历和深度遍历
  11. html在线发布ipa文件在哪里,打包ipa文件
  12. Android签名机制:生成keystore、签名、查看签名信息
  13. 分享Java 中如何运行字符串表达式?
  14. Vue学习手记02-路由创建
  15. Python+selenium+eclipse执行web自动化(四)控件处理
  16. 【Python】学习笔记2-数据类型:数组、数组循环切片
  17. Hadoop生态圈-Azkaban实现文件上传到hdfs并执行MR数据清洗
  18. intellij idea 15 万恶的光标跟随
  19. 基于java的奖学金评定管理系统_基于java的奖学金评定系统
  20. 边缘计算平台能力开放

热门文章

  1. TextView简介
  2. windows更改密码脚本_如何更改您的Windows密码
  3. 解决【VS/VC】中文乱码问题-5种解决办法
  4. 函数极限:函数极限的多种形式
  5. pm2 start 带参数_pm2 start命令中的json格式详解
  6. 图解算法 使用Java
  7. H.264(H264)视频文件的制作
  8. python parameter参数
  9. 线性回归模型的度量参数1- SST SSR SSE R-Squared
  10. 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件