2014-11-21 59 views
0

我正在使用Hortonworks Sandbox 2.1。此版本包含Hbase和Hive。 为了我的HBase的表注册到蜂巢:我休耕此链接: https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration在Hive中注册Hbase表

'CREATE TABLE IF NOT EXISTS Test_Hive (key int, valuer string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH SERDEPROPERTIES (‘hbase.columns.mapping’ = ‘:key,cf1:val’) TBLPROPERTIES (‘hbase.table.name’ = ‘table_test’);' 

,但我得到这个错误:

'Execution Error, return code 1 from org.apache.hadoop.hive.q1.exec.DDLtask. org.apache.hadoop.hive.q1.metadata.HiveException : Error in Loading storage handler.org.apashe.hadoop.hive.hbase.HbaseStorageHandler' 

我已经在这个环节发现: Integrating Hbase with Hive: Register Hbase table

我应该复制所有来自Hbase的jar,并且配置成配置单元。和copie的hbase和hadoop配置到/ etc/Hive/conf /像这样:

'cp -n /usr/lib/hbase/lib/*.jar /usr/lib/hive/lib/ 
cp -n /usr/lib/hadoop/lib/*.jar /usr/lib/hive/lib/ 
cp -n /usr/lib/hbase/conf/* /usr/lib/hive/conf/ 
cp -n /usr/lib/hadoop/conf/* /usr/lib/hive/conf/' 

但它仍然不能正常工作! 然后我尝试了另一个解决方案(也在上面的链接中): “或 而不是通过指定HIVE_AUX_JARS_PATH环境变量复制hbase jar到hive库/ usr/lib/hbase/lib/in/etc /hive/conf/hive-env.sh也会做“

所以我编辑我的‘/hive-env.sh’文件来改变这样的HIVE_AUX_JARS_PATH:

'export HIVE_AUX_JARS_PATH= /usr/lib/hbase/lib' 

它还是行不通 !! 你能告诉我如何解决这个问题吗? 预先感谢您。

回答

0
sudo cp /usr/lib/hive/lib/hive-common-0.7.0-cdh3u0.jar /usr/lib/hadoop/lib/ 
sudo cp /usr/lib/hive/lib/hbase-0.90.1-cdh3u0.jar /usr/lib/hadoop/lib/ 

2)关闭HBASE和Hadoop使用FOLLOWING COMMOND

/usr/lib/hadoop/bin/stop-all.sh 
/usr/lib/hbase/bin/stop-hbase.sh 

3)重新启动HBASE和Hadoop使用COMMOND

/usr/lib/hadoop/bin/start-all.sh 
/usr/lib/hadoop/bin/start-hbase.sh 
+0

谢谢您的回答。但是你已经写了两次相同的命令“sudo cp /usr/lib/hive/lib/hbase-0.90.1-cdh3u0.jar/usr/lib/hadoop/lib /”。这是正常的吗? – 2014-11-21 13:32:55

+0

谢谢你的工作:) – 2014-11-21 14:11:17