之前在业务处理中建立的一个hive映射hbase数据的外部表,通过hive查询成功,但是通过spark-sql去查询报了如下错误:
Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.org.apache.hadoop.hive.hbase.HBaseStorageHandler
版本
spark-2.1.0(只试过1.6.x和2.1.x都有这种问题) ,cdh 5.10.2
解决方式
前提是你已经可以通过spark-sql读取hive的数据了。
解决方式非常简单。
1.拷贝如下jar包到${spark_home}/jars(spark2.0之前是${spark_home}/lib):
- hbase-protocol-1.2.0-cdh5.10.2.jar
- hbase-client-1.2.0-cdh5.10.2.jar
- hbase-common-1.2.0-cdh5.10.2.jar
- hbase-server-1.2.0-cdh5.10.2.jar
- hive-hbase-handler-1.1.0-cdh5.10.2.jar
- metrics-core-2.2.0.jar
2.将hbase的配置文件 hbase-site.xml 拷贝到${spark_home}/conf目录下。
解决!!!