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