Ensure you call initializeTable either in your constructor or initialize method

spark-sql操作hive on spark 失败

使用spark-sql操作hive存储在hbase的外表时失败,报错:

Caused by: java.lang.IllegalStateException: The input format instance has not been properly initialized. Ensure you call initializeTable either in your constructor or initialize method
        at org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.getTable(TableInputFormatBase.java:557)
        at org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.getSplits(TableInputFormatBase.java:248)
        ... 59 more

spark中已经引入hbase中的jar包和hbase-site.xml文件,hive-hbase-handler也已经引入。这个报错网上的资料非常的少,目前推测是集群版本不兼容导致的,使用的各版本为:

hive2.3.8
hadoop2.10.1
spark3.0.1
zookeeper3.6.2
hbase2.3.3

目前正在将所有的软件卸载掉,在官网发布的源码pom.xml重新找了份经过测试相互兼容的版本安装:

hive-2.3.6
<hadoop.version>2.7.2</hadoop.version>
<hbase.version>1.1.1</hbase.version>
<spark.version>2.0.0</spark.version>
<scala.binary.version>2.11</scala.binary.version>
<scala.version>2.11.8</scala.version>
<zookeeper.version>3.4.6</zookeeper.version>

——————————————————————————————————————
更新:使用网上兼容的版本后成功用spark-sql读出hive on hbase数据。

posted @ 2021-03-19 21:25  风和雨滴  阅读(478)  评论(0)    收藏  举报