spark2.0配合hive0.13.1使用问题处理
spark2.0配合hive0.13.1使用问题处理
292672967 发表于6个月前
spark2.0配合hive0.13.1使用问题处理
  • 发表于 6个月前
  • 阅读 11
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

功能,spark2.0配合hive0.13.1使用,并保存数据到hive

错误: Invalid method name: 'alter_table_with_cascade'

解决1:

           将hive-site.xml中的 hive.metastore.uris配置项置空。使用jdo相关配置。此举是将spark提取hive元信息的方式修改为直接从数据库提取。虽然可以解决,但是客户方不给该数据。

 

解决2:

      配置spark-defaults.conf,增加spark.sql.hive.metastore.jars和spark.sql.hive.metastore.version项。

  配置完成后 Invalid method name: 'alter_table_with_cascade'异常消失了, 

结果运行又出现了NoSuchMethodException:org.apche.hadoop.,hive.ql.metada.Hive. loadTable(org.apche.hadoop.fs.Path,java.lang.String,boolean,boolean)的错误。

找到该类Hive.java,里面的loadTable方法竟然需要5个参数。果然没有4个参数的loadTable 方法。只能参照Shim_v0_14修改 Spark中的HiveShim.scala中的Shim_v0_13类,增加

loadTable和loadPartition方法。重新编译,执行。

竟然好了。看来spark中的bug也挺多,或者我的用法不对?

解决问题中有一个很奇怪的现象:在yarn-client 模式下竟然未出现 loadTable方法未找到的问题

还有遗留问题:为什么yarn-client模式下没有出现问题?

共有 人打赏支持
粉丝 9
博文 11
码字总数 7647
×
292672967
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: