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

Posted

技术标签:

【中文标题】HiveContext - 无法访问在 hive 中映射为外部表的 hbase 表【英文标题】:HiveContext - unable to access hbase table mapped in hive as external table 【发布时间】:2017-06-22 11:26:22 【问题描述】:

我正在尝试使用 Spark 中的 HiveContext 访问在 hive 中映射的 hbase 表。但我得到了ClassNotFoundException Exceptions.. 下面是我的代码。

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:类 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】:

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

从here 获取您的版本。

如果这有帮助,请告诉我。干杯。

【讨论】:

你能解释一下哪个类路径吗? Hbase 类路径? spark 类路径

以上是关于HiveContext - 无法访问在 hive 中映射为外部表的 hbase 表的主要内容,如果未能解决你的问题,请参考以下文章

通过 hiveContext 在 Spark Job 中使用 Hive 函数

使用 spark hivecontext 读取外部 hive 分区表的问题

Spark SQL(通过 HiveContext 进行 Hive 查询)总是创建 31 个分区

aws 胶水 HiveContext 访问胶水 DataCatalog

hive kerberos sparksql怎么创建hivecontext

使用 spark 访问 hive 数据