本篇文章为大家展示了spark2.0配合hive0.13.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方法未找到的问题
上述内容就是spark2.0配合hive0.13.1使用问题的处理方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注天达云行业资讯频道。