1. 程式人生 > 其它 >解決spark on yarn每次都傳遞一堆jars的問題

解決spark on yarn每次都傳遞一堆jars的問題

問題復現
spark-submit \
--master yarn \
--deploy-mode cluster \
--class com.bigdata.homework.standby.JDBCApp \
--jars /home/hadoop/lib/mysql-connector-java-5.1.47.jar,/home/hadoop/lib/config-1.2.1.jar \
--driver-class-path /home/hadoop/lib/mysql-connector-java-5.1.47.jar \
/home/hadoop/lib/rzdata-spark-1.0.jar
每次執行上面指令碼spark on yarn時,日誌會出現如下的提示,上傳SPARK_HOME/jars裡的jar包都會打包到hdfs

圖上面提示了spark.yarn.jars或者sparl.yarn.archive都沒有設定,我們看下官網的說明
http://spark.apache.org/docs/latest/running-on-yarn.html

官網的意思:如果spark.yarn.jars或者sparl.yarn.archive這2個屬性沒有設定的話,spark會把$SPARK_HOME/jars下的jar包打包,然後上傳到分散式快取,也就是hdfs

解決方法
下面是官網的說明
http://spark.apache.org/docs/latest/running-on-yarn.html

先建立hdfs目錄

$ hdfs dfs -mkdir /spark-yarn-jars
然後把$SPARK_HOME/jars上傳到此目錄

$ hdfs dfs -put ${SPARK_HOME}/jars/*.jar /spark-yarn-jars
配置spark-defaults.conf檔案

vi ${SPARK_HOME}/conf/spark-defaults.conf
新增如下的配置

spark.yarn.jars hdfs://hadoop001:9000/spark-yarn-jars/*.jar
重新執行spark on yarn,會發現不會再上傳jars,這樣執行效率會高點


————————————————
版權宣告:本文為CSDN博主「阿顧同學」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/u010452388/article/details/102644376