天天看點

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

本地運作模式

1.将壓縮包spark-3.0.0-bin-hadoop3.2.tgz上傳到虛拟機中

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

2.上傳完成後,解壓縮到無中文無空格的目錄當中

tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

3.解壓完之後,重命名檔案夾mv spark-3.0.0-bin-hadoop3.2/ spark-local

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

4.進入spark-local檔案夾目錄下使用指令bin/spark-shell進入指令行工具

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

啟動成功

5.此時就可以寫spark的基本文法了

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

6.spark中預先準備了上下文環境對象‘sc’

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

7.在spark-local/data目錄下建立一個新檔案word.txt

Vim word.txt

寫入

Hello Scala

Hello Spark

儲存并且退出

8.在spark指令行中輸入

sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

執行

結果

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

統計完成

目前本地環境配置OK

9.Spark中有一個監控頁面

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

此處有提示,複制粘貼在網頁中打開

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

10.退出本地模式

按鍵CTRL+C或者輸入Scala指令:quit

注:開發環境中一般不适用本地模式

Standalone 模式

叢集模式配置

local 本地模式畢竟隻是用來進行練習示範的,真實工作中還是要将應用送出到對應的叢集中去執行,這裡我們來看看隻使用 Spark 自身節點運作的叢集模式,也就是我們所謂的 獨立部署(Standalone)模式。Spark 的 Standalone 模式展現了經典的 master-slave 模式。 叢集規劃local 本地模式畢竟隻是用來進行練習示範的,真實工作中還是要将應用送出到對應的 叢集中去執行,這裡我們來看看隻使用 Spark 自身節點運作的叢集模式,也就是我們所謂的 獨立部署(Standalone)模式。Spark 的 Standalone 模式展現了經典的 master-slave 模式

1.解壓縮

2.重命名

mv spark-3.0.0-bin-hadoop3.2 spark-standalone

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

3.修改配置檔案

進入解壓縮後路徑的 conf 目錄,修改 slaves.template 檔案名為 slaves

mv slaves.template slaves

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

修改 slaves 檔案,添加 work 節點 vim slaves

Master

C2

C3

修改 spark-env.sh.template 檔案名為 spark-env.sh

mv spark-env.sh.template spark-env.sh

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

修改 spark-env.sh 檔案,添加 JAVA_HOME 環境變量和叢集對應的 master 節點

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

Java存放位置

主機名稱

端口号,預設7077

注意:7077 端口,相當于 hadoop3 内部通信的 8020 端口,此處的端口需要确認自己的 Hadoop 配置

分發 spark-standalone 目錄

xsync spark-standalone

(沒有xsync需要自己配腳本)

4.啟動叢集

sbin/start-all.sh

寒假學習6-spark虛拟機中配置-本地模式和叢集模式
寒假學習6-spark虛拟機中配置-本地模式和叢集模式
寒假學習6-spark虛拟機中配置-本地模式和叢集模式

5. 檢視 Master 資源監控 Web UI 界面: http://master:8080

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

成功

6.送出應用程式

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master spark://master:7077 \

./examples/jars/spark-examples_2.12-3.0.0.jar \

10

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

叢集環境OK

7.配置曆史服務

1) 修改 spark-defaults.conf.template 檔案名為 spark-defaults.conf

mv spark-defaults.conf.template spark-defaults.conf

2) 修改 spark-default.conf 檔案,配置日志存儲路徑

Vim

spark.eventLog.enabled true

spark.eventLog.dir hdfs://master:8020/directory

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

(需要提前打開Hadoop并且在hdfs中建立directory檔案)

3) 修改 spark-env.sh 檔案, 添加日志配

export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://master:8020/directory -Dspark.history.retainedApplications=30"

寒假學習6-spark虛拟機中配置-本地模式和叢集模式
寒假學習6-spark虛拟機中配置-本地模式和叢集模式

4) 分發配置檔案 xsync conf

5) 重新啟動叢集和曆史服務 sbin/start-all.sh sbin/start-history-server.sh

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

6) 重新執行任務

(我報錯了,應該是端口号的原因我的是9000,但是沒有改,這裡的教程是8020是以出錯了,在第一個配置中少打了一個/也報了錯)

(修改之後還是有錯誤,檢視了一下其它兩個的conf發現多了一個檔案,把多出來的重複檔案删除掉,重新啟動之後OK)

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

7) 檢視曆史服務:http://master:18080

寒假學習6-spark虛拟機中配置-本地模式和叢集模式

ok