1. Spark概述

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.大数据架构体系概览

1. Spark概述_第1张图片
大数据架构体系概览

3.Spark VS MapReduce的计算模型

1. Spark概述_第2张图片
Spark VS MapReduce的计算模型

4.Spark整体架构

1. Spark概述_第3张图片
Spark整体架构

5.Spark的特点

1. Spark概述_第4张图片
Spark的特点

6.Spark SQL和Hive的关系

1. Spark概述_第5张图片
Spark SQL和Hive的关系

7.Spark Streaming和Storm的计算模型对比

1. Spark概述_第6张图片
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

你可能感兴趣的:(1. Spark概述)