绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Spark学习笔记
2020-05-08 15:13:15

Spark架构,运行原理,任务调度和资源调度分析,内存管理分析,SparkSQL,SparkSreaming与kafaka,数据倾斜的解决,调优。

Spark简介

Spark是美国加州大学伯克利分校的AMP实验室(主要创始人lester和Matei)开发的通用的大数据处理框架。

Apache Spark™是用于大规模数据处理的快速通用引擎。
Apache Spark是一个开源集群计算系统,旨在使数据分析快速,快速运行和快速写入

Spark应用程序可以使用R语言,Java,Scala和Python进行编写,极少使用R语言编写的Spark程序,Java和Scala语言编写的Spark程序的执行效率是相同的,但Java语言写的代码量多,Scala简洁优雅,但清晰性不如Java,Python语言编写的Spark程序的执行效率不如Java和Scala。

Spark有4中运行模式:

  1. local模式,适用于测试
  2. 独立的,并非是单例程,还是使用spark自带的资源调度框架
  3. 纱,流行的方式,使用纱线分配调度资源
  4. mesos,国外使用的多

Spark比MapReduce快的原因

  1. Spark基于内存的迭代,而MapReduce基于磁盘的
    MapReduce的设计:中间结果保存到文件,可以提高可靠性,减少内存分配,但是牺牲了性能。Spark
    的设计:数据在内存中进行交换,要快一些,但是内存这个东西,可靠性比不过MapReduce。
  2. DAG计算模型在迭代计算上还是比MR的更有效率。
    在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG)

    DAG计算模型在星火任务调度中详解!
    星火计算比MapReduce的快的根本原因在于DAG计算模型。一般而言,DAG相比MapReduce的在大多数情况下可以减少洗牌次数.Spark的DAGScheduler相当于一个改进版的MapReduce,如果计算不涉及与其他子系统进行数据交换,Spark可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘IO的操作。但是,如果计算过程中涉及数据交换,Spark也是会把shuffle的数据写磁盘的!有一个错误区,Spark是基于内存的计算,所以快,这不是一直,要对数据做计算,必然得加载到内存,Hadoop也不会,只不过Spark支持将需要反复用到的数据给Cache到内存中,减少数据加载耗时,所以Spark跑机器学习算法比较在行(需要对数据进行反复重复)。Spark基于磁盘的计算也是比Hadoop快。刚刚提到了Spark的DAGScheduler是个改进版的MapReduce,所以Spark天 适合做批处理的任务.Hadoop的MapReduce的虽然不如火花性能好,但是HDFS仍然是业界的大数据存储标准。

  3. Spark是粗粒度的资源调度,而MR是细粒度的资源调度。
    粗细粒度的资源调度,在Spark资源调度中详解!

RDD(弹性分布式数据集)-弹性分布式数据集

分区列表
用于计算每个分区的函数
依赖于其他RDD的列表
可选地,用于键值RDD的分区器
可选地,用于计算每个拆分的位置的列表


RDD之间的依赖关系称作为血统-血统

Spark任务执行流程

写一个Spark应用程序的流程

1.加载数据集(获得RDD)

可以从HDFS,NoSQL数据库中加载数据集

2.使用转换算子对RDD进行操作

变换子是一系列懒执行的函数

3.使用动作算子触发执行

Transformations算子对RDD的操作会被先记录,当动作算子触发后才会真正执行

伪代码示例:

1个
2
3
4
5
lines = sc.textFile(“ hdfs:// ...”)//加载数据集
errors = lines.filter(_。startsWith(“ ERROR”))//转换算子
lines.filter(x => {x.startsWith(“ ERROR”)})//转换算子
Mysql_errors = errors.filter(_。contain(“ MySQL”))。count // count是动作算子
http_errors = errors.filter(_。contain(“ Http”))。count

分享好友

分享这个小栈给你的朋友们,一起进步吧。

龍门客栈
创建时间:2019-01-12 10:22:35
来新手村升级打怪啊!
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 栈栈
    栈主
  • gaokeke123
    嘉宾
  • ?
    嘉宾
  • 飘絮絮絮丶
    嘉宾

小栈成员

查看更多
  • 一号管理员
  • phyllis666
  • cynthia
  • 老七
戳我,来吐槽~