spark.yarn.archive需要手动将spark应用依赖jar上传到hdfs,该属性可以避免每一次运行spark应用时都重复打zip包上传到hdfs。
官网http://spark.apache.org/docs/latest/running-on-yarn.html#spark-properties中的描述:要使YARN端可以访问Spark运行时jar,可以指定spark.yarn.archive或spark.yarn.jars。如果既未指定也spark.yarn.archive未spark.yarn.jars指定,Spark将创建一个包含所有jar的zip文件,$SPARK_HOME/jars并将其上传到分布式缓存。
配置spark的jar存档
打包:
jar cv0f spark-libs.jar -C $SPARK_HOME/jars/ .
上传到HDFS:
hdfs dfs -put spark-libs.jar hdfs://bd001:8020/apps/spark2/lib/spark-libs.jar
配置spark-default.properties
spark.yarn.archive=hdfs://bd001:8020/apps/spark2/lib/spark-libs.jar