hive報錯 FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient


現在的情況是執行hive沒有出錯,但是執行命令出錯

$ pwd
/home/hadoop
$ hive
hive> show tables;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
hive> exit;

解決方法:

首先我們去 hive-site.xml 設置Derby數據庫的位置:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:/usr/local/hive/metastore_db;databaseName=metastore_db;create=true</value>
</property>

我們刪除原來的metadb schema,再重新初始化

$ rm -rf $HIVE_HOME/metastore_db
$ cd $HIVE_HOME
$ schematool -initSchema -dbType derby
...
Initialization script completed
schemaTool completed

現在hive正常工作了:

$ cd
$ hive
hive> show tables;
OK
Time taken: 0.803 seconds

 

 

重點:

我發現下次再進hive或者換個終端進hive又會報同樣的錯,不得不刪掉重新初始化,這樣之前的數據全沒了,這誰頂得住啊!

其實出錯的原因:derby數據庫限制只能有一個連接

不知道是上一個連接沒有關閉、還是沒有正常關閉,我們只需刪掉/usr/local/hive/metastore_db/dbex.lck文件即可

雖然這樣每次執行hsq前都要這樣,但總比刪除數據好點

如果不行,試試kill掉RunJar進程

ps -ef | grep RunJar

 

 

 

參考鏈接:

1. https://askubuntu.com/questions/1073035/failed-hiveexception-java-lang-runtimeexception-unable-to-instantiate-org-apac

2. https://stackoverflow.com/questions/35449274/java-lang-runtimeexception-unable-to-instantiate-org-apache-hadoop-hive-ql-meta

3. https://blog.csdn.net/u010886217/article/details/86501199

4. https://bbs.csdn.net/topics/390165816


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM