Spark學習筆記(基本概念與環境部署)

21/08/2019

10.Spark概述

spark速度快的原因

1.內存計算 2.有向無環圖

通用性很強:

以前需要1.SQL查詢:spark SQL實現

               2.流式計算:spark stremming 實現

               3.機器學習: spark MLib

               4.圖算法軟件:spark GraphX 實現

 

Spark vs hadoop

Hadoop : map reduce限制了表達能力;磁盤開銷大;讀寫延遲/分階段執行導致延遲

Spark:   快速迭代(based on DAG);內存計算

 

11. spark生態系統

之前的生態系統需要:

批處理(hadoop)/交互查詢(impala)/流處理(storm)

缺點: 需要進行數據格式轉換/維護成本較高/資源利用不充分

而Spark 可支持各種學習,通過YARN 進行統一分配管理

 

 

 

12.基本概念和架構設計

RDD

DAG 有向無環圖

 

13.運行基本流程

Spark context代碼操作RDD,構建了DAG,交給DAG schedule分成很多階段stage,每個stage有很多任務(worker node來申請任務),task schedule將任務分發給nodes(優先給數據所在的節點),最後執行之後順着原路返回。

 

22/08/2019

14/15/16.RDD運行原理

1. 概念,操作和特性

提供抽象數據結構,不管底層分佈結構,實現邏輯關係(DAG),減少落磁盤。

一個只讀的分區記錄集合

分佈式並行處理實現高效並行計算。

高度受限的共享內存模型

只讀,通過生成新的RDD來完成一個數據修改的目的。

兩種操作:action(動作型);transformation(轉換型)

粗粒度轉換:一次只能對RDD全集進行轉換;spark不適合細粒度修改。

惰性處理:轉換操作只記錄轉換軌跡,而不進行計算,當進行動作類型操作後纔會進行真正的計算。

天然容錯性:有向無環圖記錄了軌跡,可以直接重新生成丟失數據。

中間過程持久化RDD.Cache(),節省序列化和反序列化開銷。

2. 依賴關係

寬依賴/窄依賴

判斷是否是寬依賴和窄依賴的關鍵:是否發生shuffle操作(洗牌)

發成shuffle操作就是寬依賴,沒有發生就是窄依賴。

窄依賴:1個父RDD對應1個子RDD/多個父RDD對應1個子RDD

寬依賴:1個父RDD對應多個RDD

窄依賴:可以進行流水線優化

寬依賴:不能進行流水線優化

fork/join優化: 遇到寬依賴shuffle必須要寫磁盤/等待操作,寬依賴必須要經歷等待。

 

16.Spark部署方式

單機部署

集羣管理:standalone/mesos(性能比較高)/YARN(集羣管理可連通hadoop等,最常用)

spark和mapreduce對等,但是hadoop裏面的HDFS和HBase存儲框架無法被spark取代。

回顧基本操作:

 

2/08/2019

19.安裝Spark

安裝hadoopjavahttp://dblab.xmu.edu.cn/blog/install-hadoop/

spark下載http://spark.apache.org

spark version:2.4.0 pre-build with user-provided Apache Hadoop

Verify this release using the 2.4.3 signatureschecksums and project release KEYS.

0.配置spark的classpath解壓安裝包spark-2.4.3-bin-without-hadoop.tgz到 user/local/

$sudo tar -zxf~/下載/spark-2.4.0-bin-without-hadoop.tgz-C /usr/local/
$cd usr/local
$sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark #更改文件名
$sudo chown -R hadoop ./spark #此處hadoop改爲系統用戶名

設置classpath

$ cd /usr/local/spark
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh

編輯配置文件加入一行

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)

3.保存之後就可以用spark訪問

spark單機模式hadoop安裝成僞分佈式

 

20.pyspark

命令參數進入環境local[*]  pyspark --master<master-url> 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章