您的位置:首页 > 其它

缓存jar包来提升spark on Yarn job的提交速度

2015-12-31 11:33 537 查看
之前一直使用Spark standalone方式提交job,最近team换成了yarn方式,但发现在yarn上,提交job的速度比standalone慢的多;看提交的日志,发现其中有个很明显的东西,yarn会将
spark-assembly-1.3.0-hadoop2.4.0.jar
上传到hdfs中,这个jar包有130M+,花费了好几秒的时间,其实可以将其缓存在hdfs上的,每次job提交时不再需要重新上传,只需复制jar包即可,job提交速度明显加快。

配置方法:

在hdfs上创建个jar包缓存目录,设置权限为755

bin/hdfs dfs -mkdir hdfs://namenode_host:9000/spark-libs/

bin/hdfs dfs -chmod 755 hdfs://namenode_host:9000/spark-libs/

将对应版本的spark-assembly包put到创建的缓存目录中

bin/hdfs dfs -put ~/spark-1.3.0-bin-hadoop2.4/lib/spark-assembly-1.6.0-hadoop2.6.0.jar

bin/hdfs dfs -chmod 755 hdfs://namenode_host:9000/spark-libs/spark-assembly-1.6.0-hadoop2.6.0.jar

spark-default.conf
中设置
spark.yarn.jar
指定到 hdfs中spark-assembly包的绝对路径

spark.yarn.jar hdfs://namenode_host:9000/spark-libs/spark-assembly-1.6.0-hadoop2.6.0.jar

配置完成后,再次提交job发现不再需要上传spark assembly:

2015-12-30 17:13:43,801 [main] INFO  org.apache.spark.deploy.yarn.Client(59) - Source and destination file systems are the same. Not copying hdfs://bsaCluster/spark-lib/spark-assembly-1.3.0-hadoop2.4.0.jar


job submit速度加快了好几秒。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: