启动spark-shell遇到的一些问题

目录

1、报When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in th environmwnt

2、重启 spark-shell,出现警告, Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

3、再重启spark-shell ,报找不到或无法加载主类 org.apache.spark.deploy.yarn.ExecutorLauncher:


 

执行: spark-shell

1、报When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in th environmwnt

原因是没有配置之前在/etc/profile下配置了hadoop的环境变量,但是没有配置HADOOP_CONF_DIR

解决办法:

vim /Users/zheng/spark/spark-3.0.0/conf/spark-env.sh

#加上以下环境变量
HADOOP_CONF_DIR=/Users/zheng/hadoop/hadoop-3.2.1/etc/hadoop

 

2、重启 spark-shell,出现警告, Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

解决方式:

在/Users/zheng/spark/spark-3.0.0/conf/spark-defaults.conf加上spark.yarn.jars                  hdfs://localhost:9000/spark/jars

注意:/spark/jars为hdfs上的目录,需要提前创建好,否则启动spark-shell会报错

 

3、再重启spark-shell ,报找不到或无法加载主类 org.apache.spark.deploy.yarn.ExecutorLauncher:

http://localhost:8088/cluster可看见该应用,点进去也可以看见错误信息

原因是没有把/spark-3.0.0/jars下的jar包上传到hdfs上

解决方式:

#上传jar包
hdfs dfs  -put $SPARK_HOME/jars/*  /spark/jars/

上传完后:

 

重启,还是报了同样的错误,最后尝试把/spark-3.0.0/conf/spark-defaults.conf文件下的spark.yarn.jars参数修改为spark.yarn.archive再启动,启动成功

总结,最后尝试这两种其实是一样的:

spark.yarn.archive               hdfs://localhost:9000/spark/jars
spark.yarn.jars                     hdfs://localhost:9000/spark/jars/*.jar

spark.yarn.jars和spark.yarn.archive异同:

相同:spark默认会使用spark本地的jars(即$SPARK_HOME/jars下的jar),且每次使用都需要上传,但是可以通过设置这两个参数把jar包放在hdfs目录下,可以缓存在节点上,而不需要application每次跑的时候去获取

不同:spark.yarn.archive是把所有jar文件打成一个zip文件上传到节点,上传速度会快点,但是用到的时候需要解压缩。而spark.yarn.jars是把所有jar文件上传,上传会慢点,但是不需要解压可以直接使用

ps:关于spark.yarn.jars或spark.yarn.archive官方文档解释

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值