Spark sql 在yarn-cluster模式下找不到表

在hive里建一个数据库test,在数据库里建了一张表user,然后在Spark程序中使用Spark sql读取这张表

"select * form test.user"

当部署模式是spark stand模式和yarn-client模式时,程序可以正常运行,但yarn-cluster模式就报了找不到“test.user”表的错误。

解决办法:

spark和hive整合,把hive-site.xml加到spark根目录的conf下,所以,要在提交Spark任务的时候,要把hive-site.xml加到--files

示例:spark版本是2.0.1

spark-submit --class cn.XXX.XX.XXX --master yarn --deploy-mode cluster  --executor-memory 5g --num-executors 5  --files /data/hive-1.2.1/conf/hive-site.xml  test.jar 

参考:

http://blog.csdn.net/baiyangfu_love/article/details/40402743

在yarn-cluster模式下,原本在设置好的应用名就不生效,这个加--name参数解决:

spark-submit --class cn.XXX.XX.XXX --master yarn --deploy-mode cluster  --executor-memory 5g --num-executors 5 --name test --files /data/hive-1.2.1/conf/hive-site.xml  test.jar 

导致这个问题的主要原因是,yarn-client和yarn-cluster模式在提交任务时setAppName的执行顺序不同导致,yarn-client中setAppName是在向yarn注册Application之前读取,yarn-cluser模式则是在向yarn注册Application之后读取,这就导致yarn-cluster模式设置的应用名不生效。

参考:http://support.hwclouds.com/usermanual-mrs/zh-cn_topic_0036027341.html

 

转载于:https://www.cnblogs.com/fillPv/p/6273872.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值