spark.sql集成hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

时间:2024-03-30 15:14:33

SparkSQL集成hive

错误:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

写sparksql,查询hive表报错

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
查询不到hive数据,如果没有版本冲突(使用的hive版本不是2以上)
可以通过schematool -dbType mysql -initSchema 初始化hive元数据库。

如果hive版本过高(2以上),需要在spark包中conf文件夹中spark-defaults.conf 文件中加入
spark.sql.hive.metastore.version 写自己版本
spark.sql.warehouse.dir hdfs地址
spark.sql.hive.metastore.jars hive所需要jar包(这里最重要)

hive所需jar包我使用的是zeppelin:
spark.sql集成hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

spark.sql集成hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

spark.sql集成hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
复制三个jar包并放入到spark-defaults.conf中,具体操作参考我的
spark.sql集成hive:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
完成后,检查自己hadoop,hive,spark的配置文件,不能有错误。
到这里hive版本过高的错误就解决了,如果用的是zeppelin,需要删除zeppelin容器重新创建。