赞
踩
Spark是用于大规模数据处理的统一分析引擎。
Spark的运行架构:
Spark核心组件:
Attention:Spark RDD包括四类算子:创建算子、转换算子、持久化算子及 Action算子。一个 Action算子对应一个 Job,其余的算子对应一个 Task.
在开发过程中,常用API主要有: SparkContext、 SparkSession、 RDD、 DataSet及 DataFrame,这里主要介绍 SparkContext、 SparkSession。
从前面Spark运行架构图中可以看出, SparkContext是连接Driver、 Worker以及Cluster Manager Master)的桥梁。作为 Spark应用程序的核心、编程入口,SparkContext主要完成了如下工作:
SparkSession是 SparkSQL的入口 ,是在 2.0中引入的新的 API。旨在为 Spark编程提供统一的编程入口,意味着 SparkSession整合了 SparkConf、 SparkContext、SQLContext、 HiveContext以及 StreamingContext,其中 SQLContext、 HiveContext是为了保持兼容被保留, StreamingContext在未来可能会被加入。
可以发现,当创建了SparkSession对象后,可以间接拿到 sparkContext与sqlContext对象。所以在 2.0版本后推荐使用 SparkSession作为编程入口。
手动创建SparkSession:
import org.apache.spark.sql.SparkSession
object Test{
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName(this.getClass.getName).setMaster("local[4]")
val spark = SparkSession.builder().config(conf).getOrCreate()
}
}
RDD称为弹性分布式数据集( Resilient Distributed Datasets),它是一种分布式的内存抽象,允许在大型集群上执行基于内存的计算( In Memory Computing为用户屏蔽了底层复杂的计算和映射环境。
弹性:RDD默认存放在内存中,当内存不足,Spark自动将RDD写入磁盘;
分布式数据集:RDD是只读的、分区记录的集合,每个分区分布在集群的不同节点上;
RDD并不存储真正的数据,只是对数据和操作的描述;
容错性:根据数据血统,可以自动从节点失败中恢复分区;
RDD共有五大特性:
原创作者:wsjslient |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。