安裝spark叢集及spark介紹
阿新 • • 發佈:2019-01-02
Spark的介紹
Hadoop與Strom
Hadoop:
特點:
RDD RDD是一種只讀的、分割槽的記錄集合。Spark藉助RDD實現對類存的管理。 操作:
依賴 轉換操作產生新的RDD
窄依賴:父RDD只有一個子分割槽。 寬依賴:每個子RDD依賴所有父RDD分割槽。 懶惰計算 懶惰計算(lazy evaluation):Spark在遇到 Transformations操作時只會記錄需要這樣的操作,並不會去執行,需要等到有Actions操作的時候才會真正啟動計算過程進行計算。(不像python和matlab馬上執行)。
一個系統知道全部RDD的計算路徑的時候,它才擁有最大的優化空間。
DAG
優化任意操作運算元圖
Spark會盡可能地管道化,並基於是否要重新組織資料來劃分階段(stage)。 窄依賴:多個RDD合併成一個,在一個節點進行,不用生成中間RDD結果。(管道化) 寬依賴:沒啥優化。 排程過程
容錯
http://blog.csdn.net/lin360580306/article/details/51233397
- MapReduce:為海量資料提供了計算,但只有Map和Reduce操作,操作不靈活。
- HDFS(分散式檔案系統):為海量的資料提供了儲存。(把全部計算機的儲存能力合在一起,資料通過網路在節點之間傳輸)。
- 複雜的批量資料處理(batch data processing)
- 基於歷史資料的互動式查詢(interactive query)
- 基於實時資料流的資料處理(streaming data processing)
- 簡單方便,使用scala語言。(與RDD很好結合)
- 計算速度快,中間結果快取在記憶體中。
- 高錯誤容忍。
- 操作豐富。
- 廣播,每個節點可以保留一份小資料集。
- 迭代式演算法:迭代式機器學習、圖演算法,包括PageRank、K-means聚類和邏輯迴歸(logistic regression)。
- 互動式資料探勘工具:使用者在同一資料子集上執行多個Adhoc查詢。
RDD RDD是一種只讀的、分割槽的記錄集合。Spark藉助RDD實現對類存的管理。 操作:
-
轉換(transformation):生成新的RDD。(map/filter/groupBy/join)
- 動作(action):將RDD上的某項操作的結果返回給程式,不產生RDD。(count/reduce/collect/save)
依賴 轉換操作產生新的RDD
窄依賴:父RDD只有一個子分割槽。 寬依賴:每個子RDD依賴所有父RDD分割槽。 懶惰計算 懶惰計算(lazy evaluation):Spark在遇到 Transformations操作時只會記錄需要這樣的操作,並不會去執行,需要等到有Actions操作的時候才會真正啟動計算過程進行計算。(不像python和matlab馬上執行)。
Spark會盡可能地管道化,並基於是否要重新組織資料來劃分階段(stage)。 窄依賴:多個RDD合併成一個,在一個節點進行,不用生成中間RDD結果。(管道化) 寬依賴:沒啥優化。 排程過程
容錯
- Checkpoint:資料備份,檢測資料完整性。比較佔用空間,資料複製需要消耗時間。(hadoop只有這個)
- loggingthe updates:依靠lineage chains,記錄每個RDD產生方法,根據儲存資訊重構資料集合,其他節點幫組重構。節省空間,如果血緣關係複雜,可能導致全部節點重新計算。
- 下載JDK:sudo apt-get install openjdk-7-jre-headless。
- 解壓縮:tar –zxvf scala-2.10.6.tgz。
- 進入sudo vim /etc/profile在下面新增路徑:
- 使修改生效source /etc/profile。
- 在命令列輸入scala測試。
- 解壓縮: tar –zxvf spark-1.5.1-bin-hadoop2.6.tgz
- 進入sudo vim /etc/profile在下面新增路徑:
- 配置 Spark
cd ~/workspace/spark-1.3.0/conf #進入spark配置目錄
cp spark-env.sh.template spark-env.sh #從配置模板複製
vi spark-env.sh #新增配置內容
- 1
- 2
- 3
在spark-env.sh末尾新增以下內容(這是我的配置,你可以自行修改):
export SCALA_HOME=/home/spark/workspace/scala-2.10.4
export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75
export HADOOP_HOME=/home/spark/workspace/hadoop-2.6.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/spark/spark-lectures/spark-1.5.1-bin-hadoop2.6SPARK_DRIVER_MEMORY=1G
- 1
- 2
- 3
- 4
- 5
- 6
- 7
注:在設定Worker程序的CPU個數和記憶體大小,要注意機器的實際硬體條件,如果配置的超過當前Worker節點的硬體條件,Worker程序會啟動失敗。
vi slaves
在slaves檔案下填上slave主機名:
slave1
slave2
- 1
- 2
將配置好的spark-1.3.0資料夾分發給所有slaves吧
scp -r ~/workspace/spark-1.3.0 spark@slave1:~/workspace/
- 1
啟動Spark
sbin/start-all.sh
- 1
驗證 Spark 是否安裝成功
用jps檢查,在 master 上應該有以下幾個進
$ jps
7949 Jps
7328 SecondaryNameNode
7805 Master
7137 NameNode
7475 ResourceManager
- 1
- 2
- 3
- 4
- 5
- 6
slave 上應該有以下幾個程序:
$jps
3132 DataNode
3759 Worker
3858 Jps
3231 NodeManager
- 1
- 2
- 3
- 4
- 5
http://blog.csdn.net/lin360580306/article/details/51233397