1.Spark介紹
Spark删铃,是一種通用的大數(shù)據(jù)計(jì)算框架概荷。正如Hadoop的MapReduce螺戳、Hive引擎搁宾,以及Storm流式實(shí)時(shí)計(jì)算引擎。Spark是基于內(nèi)存計(jì)算的框架倔幼,因此其速度是MapReduce盖腿、Hive的幾倍甚至幾十倍、上百倍损同。
Spark Core:離線計(jì)算
Spark SQL:交互式查詢
Spark Streaming:實(shí)時(shí)流計(jì)算
Spark MLlib:機(jī)器學(xué)習(xí)
Spark GraphX:圖計(jì)算
Spark主要用于大數(shù)據(jù)的計(jì)算翩腐,Hadoop主要用于大數(shù)據(jù)的存儲(如HDFS、Hive膏燃、HBase等)茂卦,以及資源調(diào)度(Yarn)。
2.大數(shù)據(jù)架構(gòu)體系概覽
大數(shù)據(jù)架構(gòu)體系概覽
3.Spark VS MapReduce的計(jì)算模型
Spark VS MapReduce的計(jì)算模型
4.Spark整體架構(gòu)
Spark整體架構(gòu)
5.Spark的特點(diǎn)
Spark的特點(diǎn)
6.Spark SQL和Hive的關(guān)系
Spark SQL和Hive的關(guān)系
7.Spark Streaming和Storm的計(jì)算模型對比
Spark Streaming和Storm的計(jì)算模型對比
8. action(動(dòng)作)和transform(轉(zhuǎn)換)的理解
action和transform是Dataset(Spark 2.1之前叫RDD)的兩個(gè)非常重要的操作组哩。
action操作主要是直接從Dataset中獲取值等龙,如:
//Scala
scala> val tf = spark.read.textFile("readme.md")
tf: org.apache.spark.sql.Dataset[String] = [value: string]
scala> tf.count() //計(jì)算items數(shù)量
res0: Long = 126
scala> tf.first() //Dataset的首個(gè)item值
res1: String = # Apache Spark
代碼中的count操作和first操作都是action操作,這些操作直接從Dataset中獲取值伶贰。
transform操作可以從一個(gè)Dataset轉(zhuǎn)換到另一個(gè)Dataset蛛砰,從而計(jì)算出另一個(gè)新的Dataset,如:
//Scala
val linesWithSpark = tf.filter(line => line.contains("Spark"))
linesWithSpark : org.apache.spark.sql.Dataset[String] = [value: string]
這里的linesWithSpark就是從tf轉(zhuǎn)換過來的黍衙,一個(gè)新的Dataset暴备。
還可以通過調(diào)用函數(shù),進(jìn)行鏈?zhǔn)讲僮鱰ransform和action:
//Scala
scala> tf.filter(line => line.contains("Spark")).count()
res3: Long = 15