spark on yanr方式运行计算作业,发现作业提交缓慢
根据日志,提交缓慢主要在两个过程:
一、uploading file太慢
17/05/09 10:13:28 INFO yarn.Client: Uploading resource file:/opt/cloudera/parcels/spark-1.6.3-bin-hadoop2.6/lib/spark-assembly-1.6.3-hadoop2.6.0.jar -> hdfs://nameservice1/user/root/.sparkStaging/application_1493349445616_12544/spark-assembly-1.6.3-hadoop2.6.0.jar
17/05/09 10:13:36 INFO yarn.Client: Uploading resource file:/home/wis2_work/wis-spark-stream-1.0.0-all.jar -> hdfs://nameservice1/user/root/.sparkStaging/application_1493349445616_12544/wis-spark-stream-1.0.0-all.jar
这个日志输出后再上传程序依赖的jar包,大约耗时30s左右,造成提交缓慢,官网解决办法:如果想要在yarn端(yarn的节点)访问spark的runtime jars,需要指定spark.yarn.archive 或者 spark.yarn.jars。如果都这两个参数都没有指定,spark就会把$SPARK_HOME/jars/所有的jar上传到分布式缓存中。这也是之前任务提交特别慢的原因。
下面是解决办法
1、将$SPARK_HOME/相关依赖jar包上传到hdfs上
hadoop fs -mkdir /wi