天天看點

Spark運作模式-yarn

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      

繼續閱讀