Yarn 模式
使用yarn作為資源排程架構的運作模式
獨立部署(Standalone)模式由 Spark 自身提供計算資源,無需其他架構提供資源。這種方式降低了和其他第三方資源架構的耦合性,獨立性非常強。
Spark 主要是計算架構,而不是資源排程架構,是以本身提供的資源排程并不是它的強項,是以還是和其他專業的資源排程架構內建會更靠譜一些。
是以接下來我們來學習在強大的Yarn 環境下 Spark 是如何工作的(其實是因為在國内工作中,Yarn 使用的非常多)。
部署
》1 解壓縮檔案
将 spark-3.0.0-bin-hadoop3.2.tgz 檔案上傳到 linux 并解壓縮,放置在指定位置。
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark-yarn
》 2修改配置檔案
1)修改 hadoop 配置檔案/opt/module/hadoop/etc/hadoop/yarn-site.xml, 并分發
<!--是否啟動一個線程檢查每個任務正使用的實體記憶體量,如果任務超出配置設定值,則直接将其殺掉,預設是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否啟動一個線程檢查每個任務正使用的虛拟記憶體量,如果任務超出配置設定值,則直接将其殺掉,預設是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
2)修改 conf/spark-env.sh,添加 JAVA_HOME 和YARN_CONF_DIR 配置
mv spark-env.sh.template spark-env.sh
vim ./spark-env.sh
添加
export JAVA_HOME=/opt/module/jdk1.8.0_144
YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop
》3 啟動 HDFS 以及 YARN 叢集
sbin/start-dfs.sh 在hadoop102上執行
sbin/start-yarn.sh 在hadoop103上執行
送出應用
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10
檢視 http://hadoop103:8088 頁面,點選History,檢視曆史頁面
配置曆史伺服器
1)修改 spark-defaults.conf.template 檔案名為 spark-defaults.conf
mv spark-defaults.conf.template spark-defaults.conf
2)修改 spark-defaults.conf 檔案,配置日志存儲路徑
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop102:9000/directory
注意:需要啟動 hadoop 叢集,HDFS 上的目錄需要提前存在。
sbin/start-dfs.sh
hadoop fs -mkdir /directory
3)修改 spark-env.sh 檔案, 添加日志配置
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory
-Dspark.history.retainedApplications=30"
- 參數 1 含義:WEB UI 通路的端口号為 18080
- 參數 2 含義:指定曆史伺服器日志存儲路徑
-
參數 3 含義:指定儲存Application 曆史記錄的個數,如果超過這個值,舊的應用程式資訊将被删除,這個是記憶體中的應用數,而不是頁面上顯示的應用數。
4)修改 spark-defaults.conf
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080
5)啟動曆史服務
sbin/start-history-server.sh
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10