spark on yarn 配置

之前一直是在搭建好的集羣上使用spark。 這次需要在新的集羣上使用spark,但是集羣只安裝了hdfs和yarn組件。經過別人提醒,可以直接spark on yarn運行,經過收集資料,彙總如下:

1. spark on yarn配置

有關spark on yarn的配置參考:https://blog.csdn.net/qq_21439395/article/details/80678372

在配置好hdfs和yarn之後,只需要簡單的配置 spark-env.sh文件

export JAVA_HOME=/usr/local/jdk1.8.0_131
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

經過簡單配置之後,即可使用spark-submit把spark任務提交給yarn

spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
--queue thequeue \
examples/jars/spark-examples*.jar \
10

2. spark on yarn的spark-history-server配置

參考資料:https://blog.csdn.net/oufuji/article/details/50370490

首先配置spark-defaults.conf,指定spark事件log記錄地址

spark.eventLog.dir=hdfs://mycluster/user/spark/applicationHistory
spark.eventLog.enabled=true
spark.yarn.historyServer.address=http://snn.hadoop:18018

配置spark-evn.sh環境變量

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18018 -Dspark.history.fs.logDirectory=hdfs://mycluster/user/spark/applicationHistory"

啓動spark-history-server

$ start-history-server.sh

配置完之後,提交的yarn程序即可通過yarn的web ui連接到spark的ui界面

3. spark on yarn的jar包共享

經過前面兩步之後,我們已經可以正常提交任務,查看應用情況,但是每次提交都需要把jar包打包到hdfs,爲此,可以把共享的jar包放在hdfs路徑,通過配置環境變量,讓應用從hdfs上獲取。

參考資料:

  1. https://blog.csdn.net/lxhandlbb/article/details/54410644
  2. https://blog.csdn.net/coder__cs/article/details/79301969

上傳jar包到hdfs對應目錄

$ hdfs dfs -mkdir spark_jars
$ hdfs dfs -put $SPARK_HOME/jars/* spark_jars/

spark-env.sh配置

spark.yarn.jars=hdfs://mycluster/user/spark/spark_jars/*.jar

後續提交spark on yarn任務就不需要每次都上傳jar包到hdfs

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