HiveContext - 无法访问hive中映射的hbase表作为外部表

时间:2017-06-22 11:26:23

标签: scala apache-spark hbase hivecontext spark-submit

我正在尝试使用Spark中的HiveContext访问hive中映射的hbase表。但我得到了ClassNotFoundException例外情况。以下是我的代码。

import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
val df = sqlContext.sql("select * from dbn.hvehbasetable") 

我收到以下错误..

  

17/06/22 07:17:30错误日志:initSerDe中的错误:   java.lang.ClassNotFoundException类   找不到org.apache.hadoop.hive.hbase.HBaseSerDe   java.lang.ClassNotFoundException:Class   找不到org.apache.hadoop.hive.hbase.HBaseSerDe           在org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2120)           在org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(MetaStoreUtils.java:385)           在org.apache.hadoop.hive.ql.metadata.Table.getDeserializerFromMetaStore(Table.java:276)           在org.apache.hadoop.hive.ql.metadata.Table.getDeserializer(Table.java:258)           在org.apache.hadoop.hive.ql.metadata.Table.getCols(Table.java:605)           在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1 $$ anonfun $ 3.apply(ClientWrapper.scala:342)           在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1 $$ anonfun $ 3.apply(ClientWrapper.scala:337)           在scala.Option.map(Option.scala:145)           在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1.apply(ClientWrapper.scala:337)           在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1.apply(ClientWrapper.scala:332)           在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ withHiveState $ 1.apply(ClientWrapper.scala:290)           在org.apache.spark.sql.hive.client.ClientWrapper.liftedTree1 $ 1(ClientWrapper.scala:237)

任何人都可以帮助我导入哪些类来读取hbase表。

1 个答案:

答案 0 :(得分:5)

我认为,如果你还没有这样做,你需要在classpath / auxpath中添加hive-hbase-handler jar。

here获取您的版本。

如果这有帮助,请告诉我。欢呼声。