一.Spark是什么?
Spark,是一种通用并行分布式大数据计算框架,2009年由加州大学的伯克利分校的AMP实验室开发,它是当前大数据领域最活跃的开源项目之一,它基于MapReduce算法的分布式计算,拥有MapReduce的所有的优点。它将操作过程的中间结果放于内存中,所以不需要读写HDFS,能更好的适用于数据挖掘和机器学习的迭代算法。
Spark被称为快数据,它于Hadoop的传统计算方式MapReduce相比快100倍,它还支持多语言。
Spark相关介绍可参照 大数据之谜Spark基础篇,Spark是什么
二.Spark好在哪里?
Spark的中间数据放到内存中,所以不需要读写HDFS,更好的适用于数据挖掘和机器学习的迭代算法。
Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。
Spark比Hadoop更通用 Spark提供的数据集操作类型有很多。
Spark开发者可以快速的用Java、Scala或Python编写程序,并且它也在开发R语言。
Spark优势认知相关介绍 Spark的好处及优势
三.Spark编程模型
1.运用程序
Spark应用程序分为两个部分:Driver部分和Executor部分
2.运行流程
四.RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark最核心的东西,也是最基本的抽象,它表示一个不可变、可分区、里面的元素可并行计算的集合。不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升非常大。
Spark计算模型RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将数据缓存在内存中,后续的查询能够重用这些数据,这极大地提升了查询速度。
RDD模型
常用的Transformation:
转换 |
含义 |
map(func) |
返回一个新的RDD,该RDD由每一个输入元素经过func |