1.Spark介绍
Spark,是一种通用的大数据计算框架。正如Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎。Spark是基于内存计算的框架,因此其速度是MapReduce、Hive的几倍甚至几十倍、上百倍。
Spark Core:离线计算
Spark SQL:交互式查询
Spark Streaming:实时流计算
Spark MLlib:机器学习
Spark GraphX:图计算
Spark主要用于大数据的计算,Hadoop主要用于大数据的存储(如HDFS、Hive、HBase等),以及资源调度(Yarn)。
2.大数据架构体系概览
3.Spark VS MapReduce的计算模型
4.Spark整体架构
5.Spark的特点
6.Spark SQL和Hive的关系
7.Spark Streaming和Storm的计算模型对比
8. action(动作)和transform(转换)的理解
action和transform是Dataset(Spark 2.1之前叫RDD)的两个非常重要的操作。
action操作主要是直接从Dataset中获取值,如:
//Scala
scala> val tf = spark.read.textFile("readme.md")
tf: org.apache.spark.sql.Dataset[String] = [value: string]
scala> tf.count() //计算items数量
res0: Long = 126
scala> tf.first() //Dataset的首个item值
res1: String = # Apache Spark
代码中的count操作和first操作都是action操作,这些操作直接从Dataset中获取值。
transform操作可以从一个Dataset转换到另一个Dataset,从而计算出另一个新的Dataset,如:
//Scala
val linesWithSpark = tf.filter(line => line.contains("Spark"))
linesWithSpark : org.apache.spark.sql.Dataset[String] = [value: string]
这里的linesWithSpark就是从tf转换过来的,一个新的Dataset。
还可以通过调用函数,进行链式操作transform和action:
//Scala
scala> tf.filter(line => line.contains("Spark")).count()
res3: Long = 15