2015-02-24 29 views
1

我想安裝Apache Hive,我將HIVE_HOME和HADOOP_HOME插入到hive_config.sh中,並將一些Hive jar複製到$ HADOOP_HOME/lib中 但是當吃午飯吧,用hive command這個錯誤出現:Apache Hive:無法實例化org.apache.hadoop.hive.metastore.HiveMetaStoreClient

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:346) 
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681) 
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:156) 
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1412) 
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62) 
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72) 
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2453) 
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2465) 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:340) 
... 7 more 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1410) 
... 12 more 
Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory 
NestedThrowables: 
java.lang.reflect.InvocationTargetException 
etc ... 

任何幫助請!

回答

1

你的hadoop應該處於運行狀態。 解壓下載的配置單元並將權限授予目錄。轉到hive/conf目錄。將hive-env.sh.template文件設置爲hive-env.sh和hive-default.xml.template文件到hive-site.xml。打開hive-evn.sh並在hive-env.sh和HADOOP_HOME中設置JAVA_HOME,並設置配置單元路徑。

export HIVE_HOME=/usr/local/hive 

然後打開蜂箱終端通過

hive 

默認蜂巢需要Derby數據庫,如果在創建表時提供​​了metastore的錯誤,去metastore/metastore_db和刪除* .LCK文件。

在.bashrc或.bash_profile中添加JAVA_HOME,HADOOP_HOME,HIVE_HOME。

$cd ~ 
$vi .bashrc 

paste following to the end of the file 



#Hadoop variables 
export JAVA_HOME=/usr/lib/jvm/jdk/ 
export PATH=$PATH:$JAVA_HOME/bin 
export HADOOP_HOME=/usr/local/hadoop 
export PATH=$PATH:$HADOOP_INSTALL/bin 
export PATH=$PATH:$HADOOP_INSTALL/sbin 
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL 
export HADOOP_COMMON_HOME=$HADOOP_INSTALL 
export HADOOP_HDFS_HOME=$HADOOP_INSTALL 
export YARN_HOME=$HADOOP_INSTALL 
export HIVE_HOME=/usr/local/hive 
export PATH=$PATH:$HIVE_HOME/bin 
###end of paste 
+0

非常感謝您的幫助,我的錯是我錯過了爲HADOOP_CLASSPATH添加配置單元的jar:export HADOOP_CLASSPATH =/home/elyes/Cassandra/apache-cassandra-2.0.6/lib/cassandra-driver-核心-1.0.0-RC1-sources.jar:/家庭/ elyes /蜂巢/ lib目錄/ *罐子 – 2015-02-24 15:09:13

0

如果你是一個CDH用戶,你應該建立齊柏林用正確的參數。這些參數會解決這個問題的CDH 5.3.3:

mvn clean install -Pspark-1.4 -Phadoop-2.4 -DskipTests -Dspark.version=1.4.0 -Dhadoop.version=2.5.0-cdh5.3.3 -Dhive.hive.version=0.13.1-cdh5.3.3 
1

hive --service metastore &

該命令將啓動Metastore。

0

無需啓動metastore作爲服務運行蜂巢CLI會做同樣的只是確保你從你實例蜂巢metastore

0

從屬性相同的目錄執行蜂巢命令,它會創建唯一的數據庫,但不是架構。嘗試創建MySQL中的蜂巢metastore所需的架構

CD $ HIVE_HOME /腳本/ metastore /使用命令(MySQL的ü根 - P),其中根是升級的用戶名/ MySQL的/ <登錄到MySQL和密碼將被詢問>

mysql> use metastore; 
mysql> source hive-schema-<your_version>.mysql.sql; 

例如,源hive-schema-2.1.0.mysql.sql; 然後重新啓動蜂房Metastore過程使用:

(配置單元 - 服務Metastore) 希望這將解決問題!

相關問題