2017-06-22 82 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類路徑 –