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数据。

浙公网安备 33010602011771号