-
Spark快速且通用的集群計(jì)算平臺
? spark是快速的
○ Spark擴(kuò)充了流行的Mapreduce計(jì)算模型
○ Spark是基于內(nèi)存的計(jì)算
? spark是通用的
○ 容納了其他分布式系統(tǒng)擁有的功能:批處理、迭代式計(jì)算、交互查詢和流處理等,方便維護(hù)
○ 優(yōu)點(diǎn):降低了維護(hù)成本
? spark是高度開放的
○ Spark提供了Python,Java,Scala,SQL的API和豐富的內(nèi)置庫。
○ Spark和其他的大數(shù)據(jù)工具整合的很好,包括hadoop,kafka等。查看全部 -
RDDs血統(tǒng)關(guān)系圖
Spark維護(hù)著RDDs之間的依賴關(guān)系和創(chuàng)建關(guān)系,叫做 血統(tǒng)關(guān)系圖
Spark使用血統(tǒng)關(guān)系圖計(jì)算每個(gè)RDD的需求和恢復(fù)丟失的數(shù)據(jù)
延遲計(jì)算( Lazy Evaluation)
在第一次使用Action操作時(shí)才進(jìn)行計(jì)算, 減少數(shù)據(jù)傳輸
Spark內(nèi)部記錄metadat表明 transformation操作已經(jīng)相應(yīng)
RDD.persist() 持久操作
默認(rèn)每次RDD進(jìn)行action操作,會重新計(jì)算
persist()后可以重復(fù)利用一個(gè)RDD (緩存)
查看全部 -
//scala //RDD逐元素transformation lines.map(word=>(word,1)) lines.filter(word=>word.contains("hello")) lines.flatMap(line=>line.split("?"))??????//壓扁 //集合運(yùn)算 rdd1.distinct()????//去重 rdd1.union(rdd2)????//并集 rdd1.intersection(rdd2)????//交集 rdd1.subtract(rdd2)
查看全部 -
RDDs創(chuàng)建
#scala val?rdd=?sc.parallelize(Array(1,2,3,4),4) #參數(shù)1:待并行化處理的集合 #參數(shù)2:分區(qū)個(gè)數(shù) rdd.count() rdd.foreach(println) #加載外部數(shù)據(jù) val?rddText?=?sc.textFile("hello.txt")
Scala基礎(chǔ)
#變量 val?變量值不可修改 var?可指向類型相同的值 #匿名函數(shù)和類型推斷??自動推斷l(xiāng)ine是string類型,可調(diào)用contain方法 lines.filter(line?=>?line.contains("world"))
查看全部 -
Drive Programs通過 SparkContext 對象訪問Spark
SparkContext 對象(即sc) 代表和一個(gè)集群的連接?
scala>?val?lines=?sc.textFile("/home/soft/hello.txt") lines即為RDDs
RDDs彈性分布式數(shù)據(jù)集:? 并行分布在整個(gè)集群中
RDDs是Spark分發(fā)數(shù)據(jù)和計(jì)算的基礎(chǔ)抽象類
一個(gè)RDD是不可改變的分布式集合對象
Spark中所有計(jì)算都是RDD操作完成
分片:
一個(gè)RDD內(nèi)部有許多partitions分片組成,?
每個(gè)partition包含一部分?jǐn)?shù)據(jù), 可在集群不同節(jié)點(diǎn)計(jì)算
分片是Spark并行處理的單元
查看全部 -
Wordcount
//Scala Object?WordCount{ ????def?main(args:?Array[String]){ ????????val?conf=?new?SparkConf().setAppName("wordcount") ????????val?sc?=?new?SparkContext(conf) ???????? ????????val?input=?sc.textFile("/home/soft/hello.txt") ????????//RDD操作:壓扁 ????????val?lines?=?input.flatMap(line=>?line.split("?")) ????????//轉(zhuǎn)換成kv對 ????????val?count=?lines.map(word=>(word,1)).reduceByKey{case?(x,y)=>x+y} ????????val?output=?count.saveAsTextFile("/home/result") ????} }
Project Structure -> Artifacts ->+然后 BuildArtifacts? 打包Jar
啟動集群:
????????啟動master? start-master.sh
????????啟動worker? spark-class
????????提交作業(yè) spark-submit
#啟動worker spark-class?org.apache.spark.deploy.worker.Worker?spark://localhost.localdomain:4040 #提交 spark-submit?--master?spark://localhost.localdomain:4040?--class?WordCount?/home/soft/hello.jar #上傳jar包 rz?-be
查看全部 -
RDDS的特性
查看全部 -
RDD基本操作之a(chǎn)ction
查看全部 -
rdd緩存級別
查看全部 -
小結(jié)
查看全部 -
distinct:驅(qū)蟲
union:合并
intersection:交集
subtract:差集
查看全部 -
spark與hadoop
spark計(jì)算時(shí)效:幾秒鐘、幾分鐘
存儲:基于內(nèi)存計(jì)算,需要借助hdfs持久化數(shù)據(jù)
查看全部 -
spark core
查看全部 -
spark的生態(tài)
查看全部 -
思路,PPT查看全部
舉報(bào)