spark

Spark比hadoop快的原因

1中間結(jié)果基于內(nèi)存

2dag

3以線程為單位,開銷更?。ú淮_定)

Spark?core:

彈性分布式數(shù)據(jù)集(Resilient?Distributed?Dataset,RDD )。RDD就是帶有分區(qū)的集合類型

rdd的五大特性:

1由一系列partition組成

2算子作用在partition上

3rdd之間有依賴關(guān)系

4分區(qū)器作用在k,v格式的rdd上(分區(qū):主要通過compute函數(shù))

5partition提供計算位置,利于數(shù)據(jù)本地化

spark讀取hdfs的數(shù)據(jù)的方法:

textfile,底層調(diào)用的是mr讀取hdfs的方法(split的block對應(yīng)rdd的partition)

彈性分布式數(shù)據(jù)集(RDD),他是一個彈性的,可分區(qū)的,分布式計算的集合。RDD允許用戶在執(zhí)行多個查詢時顯式地將工作集緩存在內(nèi)存中,后續(xù)的查詢能夠重用工作集,這極大地提升了查詢速度。

彈性的體現(xiàn):

存儲彈性:內(nèi)存和硬盤可以互相切換

容錯彈性:通過依賴關(guān)系,計算丟失自動恢復(fù)

計算彈性:partition可多可少

分布式的體現(xiàn):

rdd的partition分布在多個節(jié)點

代碼流程:

1、配置sparkconf??

val conf = new sparkconf

conf.xxx

2、創(chuàng)建sparkcontext對象

val sc = new sparkcontext(conf)

val lines = sc.textfile(path="./xx/xx")

3、創(chuàng)建rdd,對rdd進行處理

4、action觸發(fā)transformation執(zhí)行

val rdd = lines.flatmap(one=>{one.split(" ")}).foreach(println)

5、關(guān)閉sparkcontext

sc.stop()

DAG:

原始RDD的通過一系列轉(zhuǎn)換和執(zhí)行來生成RDD之間的依賴關(guān)系,這個計算鏈就是邏輯上的DAG(有向無環(huán)圖),lineage就是一條依賴關(guān)系,多條lineage可以組成DAG

針對RDD的算子操作,分三種:

一種是Transformation(變換),用來構(gòu)建RDD血緣關(guān)系,屬于懶操作,不會真正觸發(fā)RDD的處理計算,比如map(一對一),flatmap(一對多),filter,groupbykey。

另一種是Actions(執(zhí)行),它才會真正觸發(fā)計算,一個action一個job。比如count,reduce,first,take(n),返回的不是rdd就可能是actions

持久化算子:將計算結(jié)果持久化到內(nèi)存,不需要重復(fù)計算

????cache:默認(rèn)存在內(nèi)存中

????persist:手動指定級別

????checkpoint: 持久化到指定目錄,血緣關(guān)系非常復(fù)雜可以使用,可以切斷依賴關(guān)系


寬依賴:子rdd分區(qū)與父rdd分區(qū)多對多,

窄依賴:子rdd與父rdd分區(qū)一對一

緩存作用:保存血緣關(guān)系

檢查點:血緣關(guān)系太長而設(shè)置,類似于快照

任務(wù)分為app,job,stage,task

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎。Spark是UC Berkeley AM...
    大佛愛讀書閱讀 2,980評論 0 20
  • Spark學(xué)習(xí)筆記 Data Source->Kafka->Spark Streaming->Parquet->S...
    哎喲喂嘍閱讀 6,844評論 0 51
  • spark-submit的時候如何引入外部jar包 在通過spark-submit提交任務(wù)時,可以通過添加配置參數(shù)...
    博弈史密斯閱讀 3,024評論 1 14
  • RDD的概述 RDD是只讀的、分區(qū)記錄的集合,是Spark編程模型的最主要抽象,它是一種特殊的集合,支持多種數(shù)據(jù)源...
    木戎閱讀 3,366評論 0 2
  • 臨摹作品。 紙:寶虹粗紋 顏料:nicker不透明水彩 筆:雜牌筆。
    普林賽斯閱讀 360評論 4 7

友情鏈接更多精彩內(nèi)容