解决spark on yarn每次都上传$SPARK_HOME/jars的问题

1.前言

每次提交Spark on Yarn作业时, Spark都会把$SPARK_HOME/jars下的jar打包成zip上传到hdfs分布式缓存中
spark
这样在生产上是不合适的,会浪费不必要的网络资源

2.官方说明

http://spark.apache.org/docs/latest/running-on-yarn.html
spark
如果我们在使用Spark on Yarn时如果为设置spark.yarn.jarsspark.yarn.archive就会发生jars上传的操作。解决办法也很简单
spark.yarn.jars
$spark/jars/*上传hdfs,然后配置spark-defaults.conf就行

 hdfs dfs -mkdir  /lib/spark-jars
 hdfs dfs -put ${SPARK_HOME}/jars/*.jar /lib/spark-jars
 vim ${SPARK_HOME}/conf/spark-defaults.conf
 # 添加以下内容
 spark.yarn.jars    hdfs://hadoop001:9000/lib/spark-jars/*

再次提交spark作业到yarn发现不会再上传Jars了
spark

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在配置 Spark on YARN 环境之前,你需要确保以下条件已经满足: 1. 安装了 Hadoop 分布式文件系统和 YARN(Yet Another Resource Negotiator)资源管理器。 2. 下载和安装了 Spark。 接下来,你需要按照以下步骤配置 Spark on YARN 环境: 1. 在 Spark 安装目录中,找到 `conf` 目录并复制 `spark-env.sh.template` 文件并将其命名为 `spark-env.sh`。 2. 打开 `spark-env.sh` 文件并添加以下内容: ```bash export HADOOP_CONF_DIR=/path/to/hadoop/conf export YARN_CONF_DIR=/path/to/hadoop/conf export SPARK_EXECUTOR_MEMORY=1g export SPARK_DRIVER_MEMORY=1g export SPARK_YARN_APP_NAME=Spark export SPARK_HOME=/path/to/spark ``` 其中,`/path/to/hadoop/conf` 是你的 Hadoop 配置文件的路径,`/path/to/spark` 是你的 Spark 安装路径,`SPARK_EXECUTOR_MEMORY` 和 `SPARK_DRIVER_MEMORY` 分别设置了 Spark executor 和 driver 的内存大小,`SPARK_YARN_APP_NAME` 是 SparkYARN 上的应用名称。 3. 配置 Spark 的运行模式。在 `conf` 目录下找到 `spark-defaults.conf` 文件,并将以下内容添加到文件末尾: ```bash spark.master yarn spark.submit.deployMode client spark.driver.extraJavaOptions -Dhdp.version=2.7.3.2.6.0.3-8 spark.yarn.am.extraJavaOptions -Dhdp.version=2.7.3.2.6.0.3-8 spark.executor.extraJavaOptions -Dhdp.version=2.7.3.2.6.0.3-8 ``` `spark.master yarn` 表示 Spark 运行在 YARN 上,`spark.submit.deployMode client` 表示 Spark 运行在客户端模式下。 4. 启动 Spark on YARN。在 Spark 安装目录中运行以下命令: ```bash ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode client \ --executor-memory 1g \ --num-executors 2 \ --driver-memory 1g \ --executor-cores 1 \ --queue default \ examples/jars/spark-examples_2.11-2.4.5.jar 10 ``` 这会启动一个 Spark 应用程序,并在 YARN 上分配 2 个执行器,并使用 1GB 的内存。 配置完成后,你可以在 Spark on YARN 上运行 Spark 应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值