2017-06-22 87 views
1

我试图访问在星火使用HiveContext蜂巢映射HBase的表。但我得到ClassNotFoundException例外..下面是我的代码。HiveContext - 无法访问在蜂巢映射表的HBase作为外部表

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

我提示以下错误:..

17/06/22 7点17分三十秒错误日志:错误initSerDe: 抛出java.lang.ClassNotFoundException类 org.apache。 hadoop.hive.hbase.HBaseSerDe找不到 java.lang.ClassNotFoundException:类 org.apache.hadoop.hive.hbase.HBaseSerDe not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2120 ) at org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(Me (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) at org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1 $$ anonfun $ 3.apply(ClientWrapper.scala:337) at scala。 Option.map(Option.scala:145) 在org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1.适用(ClientWrapper.scala:337) 在org.apache.spark.sql。 hive.client.ClientWrapper $$ anonfun $ getTableOption $ 1.适用(ClientWra在org.apache.spark.sql.hive.client上的org.apache.spark.sql.hive.client.ClientWrapper $$ anonfun $ withHiveState $ 1.apply(ClientWrapper.scala:290) 。 ClientWrapper.liftedTree1 $ 1(ClientWrapper.scala:237)

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

回答

4

我想,你需要在类路径/ auxpath添加hive-hbase-handler JAR如果你有没有做到这一点了。

here让你的版本。

让我知道这是否有帮助。干杯。

+0

你能否解释一下其中的类路径? Hbase类路径? –

+0

spark类路径 –