日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优点 spark_spark(一)

發布時間:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优点 spark_spark(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spark簡介:

Apache Spark是專為大規模數據處理而設計的快速通用的計算引擎,Spark擁有Hadoop MapReduce所具有的的所有優點,但不同于MapReduce得是job中間輸出結果可以保存在內存中,從而不需要去讀取HDFS,因此Spark能更好的適用于數據挖掘于機器學習等需要的迭代的MapReduce的算法,Spark是Scala編寫,方便快速編程

spark生態圖:

Spark和MapReduce的區別

Spark基于內存,MapReduce基于hdfs.Spark處理數據的能力一般是MapReduce的十倍以上,Spark中除了基于內存計算外,還有DAG有向無環圖來切分任務的執行先后順序

Spark常用運行模式:

Local --本地運行模式

Standalone --是Spark自帶的一個資源調度框架,支持完全分布式

Yarn --Hadoop生態圈的一個資源調度框架,Spark也可以基于其來進行計算

核心庫 --SparkCore

RDD

概念:

RDD(Resilient Distributed Dateset),彈性分布式數據集

RDD五大特性:

1.RDD是由一系列的partition組成的

2.函數是作用在每一個partition(split)上的

3.RDD之間有一系列的依賴關系

4.分區器是作用在K,V格式的RDD上的

5.RDD提供一系列最佳的計算位置

RDD圖解:

要點:

textFile方法底層封裝的是讀取MR讀取文件的方式,讀取文件之前先split,默認split大小是一個block塊大小

RDD實際上不存儲數據,這里為了方便理解,暫時理解為存儲數據

如果RDD里面存儲的數據都是二元組對象,那么這個RDD我們就叫做K,V格式的RDD

體現RDD的彈性(容錯)

--partition數量,大小沒有限制

--RDD之間的依賴關系,可以基于上一個RDD重新算出RDD

體現RDD的分布式:

--RDD由partition組成,partition分布在不同的節點上

RDD提供最佳的計算位置,體現了數據本地化,大數據中"計算以東部移動數據"的概念

Spark任務執行原理

以上圖中,Driver和Worker式啟動在節點上的進程,運行在jvm中的進程

Driver與集群節點之間有頻繁的通信

Driver負責任務(tasks)的分發和結果的回收,任務的調度

Worker和Master是Standalone資源調度框架里面資源管理的從節點,也是jvm進程

Transformations轉換算子

Transformations算子是延遲執行,也叫懶加載執行

filter:過濾符合條件的記錄數,true保留,false過濾

map:將一個RDD中的每一個數據項,通過map中的映射函數變為一個新的元素特點:輸入一條,輸出一條

flatMap:先map后flat,與map類似,每個輸入項可以映射為0-多個輸出項

sample:隨機抽樣算子,根據傳進去小數按比例進行又放回或者無放回的抽樣

reduceByKey:將相同的key根據相應的邏輯進行處理

sortByKey/sortBy:作用在K,V格式的RDD上,對key進行升降序排序

Action行動算子

Action類算子是觸發執行,一個application應用程序中有幾個Action類算子執行,就有幾個job運行

count:返回數據集中的元素數,會在結果計算完成會受到Driver端

take(n):返回一個包含數據及前n個元素的集合

first:返回數據集中的第一個元素

foreach:循環遍歷數據集,運行相應的邏輯

collect:將計算結果會收到Driver端

控制算子

控制算子有三種,cache,persist,checkpoint,以上算子都可以將RDD持久化,持久化單位為partition,cache和persist是懶執行的,必須有一個action類算子觸發執行,checkpoint算子不僅僅能將RDD持久化,還能切斷RDD之間的依賴關系

cache

默認將RDD的數據持久化到內存中,

persist

可以指定持久化的級別,最常用的是MEMORYONLY和MEMORY_AND_DISK

_2表示副本數持久化級別如下:

cache和persist注意事項;

1.cache和persist都是懶執行,必須要有一個action類算子來觸發執行

2.cache和persist算子的返回值可以賦值給一個變量,在其他job中直接使用這個變量就是使用持久化的數據了,持久化單位是partition

3.cache和persist算子后不能立即緊跟action類算子

checkpoint

checkpoint將RDD持久化到磁盤中,還可以切斷RDD之間的依賴關系

checkpoint的執行原理:

1.當RDD的job執行完畢之后,會從finalRDD從后往前回溯

2.當回溯到摸一個RDD調用了checkpoint方法,會對當前的RDD做一個標記

3.Spark框架會自動啟動一個新的job,重新計算這個RDD的數據,將數據持久化到HDFS中

優化:對RDD執行checkpoint方法之前,最好對這個RDD先執行cache,這樣新啟動的job只需將內存中的數據拷貝到HDFS上就可以了,省去了重新計算的這一步

總結

以上是生活随笔為你收集整理的优点 spark_spark(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。