大数据Hadoop、spark笔记 第二章 spark设计与原理

大数据Hadoop、spark笔记(一)-CSDN博客

第二章 spark设计与原理-CSDN博客

第三章:Spqrk应用基础-CSDN博客

第四章:流计算-CSDN博客

Spark生态系统:

MLlib:机器学习算法库,对于一些成熟的机器学习算法。可以直接调用其接口并传参,就能自动进行训练并输出结果。

一些基本概念:

RDD:弹性分布式数据集。是分布式内存的一个抽象概念,在计算的过程中可以动态的变化分区数量和数据集大小,是spark核心的数据抽象。

DAG:有向无环图。反应RDD之间的关系。

Ececutor进程:负责执行相关任务。在每个工作节点会运行一个ececutor进程,每个ececutor进程会派生出很多线程,每个线程负责完成一个任务。

任务Task:运行在ececutor上的基本单元/ececutor是由一堆task组成的

作业Job:一个job包含多个RDD即作用于相应RDD上的各种操作

阶段Stage:Job的基本调度单位,一个job分为多组task,每组task称为一个stage/taskSet,代表一组关联的、没有依赖关系的任务集

应用Application:用户编写的spark应用程序

​ 应用通过任务控制节点drive分成了多个作业(job),每个作业包含多个阶段(stage),每个阶段有多个任务(tsak)

基本架构:一主多从架构

​  

​ 当执行应用时:drive向资源管理器申请到资源(启动一个工作节点worker node)后,将应用程序代码文件发送给ececutor进程,ececutor进程会派发出线程执行任务。执行完,将结果(task receiver)发送给driver或写入数据库。

运行基本流程

Sparkcontext:由driver节点创建的指挥官

Sparkcontext根据程序代码中的RDD关系生成DAG图,将DAG图交给DAG Scheduler,使之将DAG图分解成Stage/taskset。

Task Scheduler:负责每个stage里task的分配:ececutor启动后,Worker Node会主动向Task Scheduler申请任务,Task Scheduler负责分发。分发任务的基本原则:计算向数据靠拢---如果数据在机器A上,那么优先让机器A执行该任务,避免额外的数据传输开销。

​ executor会将结果返回给Task Scheduler,并逐层向上传输,最终交予用户或写入数据库

RDD运行原理:

设计动机:大数据处理经常使用迭代计算,迭代计算需要大量的外存IO(正反)序列化(将不方便存储的格式,如对象,转化成易于存储的二进制或字符串格式)操作,时间开销大。

于是设计了RDD,一种抽象的数据结构。不论多复杂的业务逻辑,都可以表示成一系列RDD的转化。RDD之间的依赖关系就可以表示成DAG图,进而进行优化处理,实现管道化流水线处理。

一个RDD可以分布式存储在多个机器上,故可以分布式并行计算。

RDD提供了一种高度受限的共享内存模型:

RDD是只读的,不能修改。要修改就只能对RDD进行转换---即生成一个新的RDD

粗粒度操作:一次只能对RDD全集进行转换。例如RDD是60个同学的成绩,要进行加5分操作,就只能所有人加5分。     (粗粒度操作不会使RDD操作受限,因为RDD提供了多种操作,操作组合可以实现细致操作。)

RDD操作类型:转换类型操作,动作类型操作

惰性操作:转换操作只会记录转换的轨迹,而不进行计算。只有遇到动作操作,才会从头执行操作(从 从磁盘读取数据,创建AC开始执行)

管道化/流水线处理:一个操作的输入是另一个的输出。 从而避免IO。

RDD高效的容错性:

低效的容错性:数据备份,日志

高效的容错性:​ 根据DAG回退,哪一步出错就退到前一步

Spark提供了RDD的API,程序员通过调用API对RDD进行操作

为什么要把一个作业分成多个阶段?

RDD之间的依赖关系:宽依赖(划分多个阶段),窄依赖(不划分)

窄依赖可以流水线优化,宽依赖不能

Shuffle/洗牌操作(依赖关系的判据):

DAG中若出现了一个父亲对多个儿子的情况: 前两个是窄依赖,第三个是宽依赖

​     ​       

Fork/join机制:

每一次RDD之间的转化都对应一个fork(分发并行处理)和一个join(结果汇总)。后者需要磁盘操作。但对于连读多个RDD的转化,其实不需要每次都join。窄依赖可以连续fork,但宽依赖必须join。

DAG图解析:

实例:

阶段内部并行,阶段之间等待

Spark有单机部署模式(local)和集群部署模式

集群部署又包括三种方式:Standalone---spark自带的集群资源管理器;Mesos---性能最高;YARN---应用最广

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值