Hive 無(wú)法訪問(wèn)元數(shù)據(jù):Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

問(wèn)題描述:

  • 環(huán)境:Hadoop 2.9.2 + Hive 2.3.7 ,集群由三臺(tái)搭載 Centos7 系統(tǒng)的虛擬機(jī)模擬
  • 問(wèn)題:HDFS 和 Yarn 成功啟動(dòng)之后,在任意一個(gè)節(jié)點(diǎn)上啟動(dòng) Hive 并使用 show databases; 命令查看數(shù)據(jù)庫(kù)列表時(shí),均會(huì)報(bào)錯(cuò):Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

產(chǎn)生原因:

Hive 的核心配置文件 hive-site.xml 中可見(jiàn),元數(shù)據(jù)存放于節(jié)點(diǎn)3的MySQL中:

<!-- hive元數(shù)據(jù)的存儲(chǔ)位置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://centos7-3:3306/hivemetadata?createDatabaseIfNotExist=true&amp;useSSL=false</value>
        <description>JDBC connect string for a JDBC metastore</description>
    </property>

如果僅有以上配置,則 Hive 元數(shù)據(jù)連接方式為 Local 模式,通過(guò) JDBC 直接訪問(wèn)節(jié)點(diǎn)3上的 MySQL,從而獲取元數(shù)據(jù)。
hive-site.xml 中還同時(shí)指定了 metastore thrift 連接的 地址&端口:

<!-- 指定 metastore 的地址和端口 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://centos7-3:9083</value>
    </property>
    <property>
        <name>hive.metastore.client.socket.timeout</name>
        <value>3600</value>
    </property>

此時(shí),Hive 的元數(shù)據(jù)連接方式變?yōu)?Remote 模式,即使用 HiveMetaStoreClient 遠(yuǎn)程訪問(wèn)節(jié)點(diǎn)3的9083端口,獲取元數(shù)據(jù)信息。

【參考】Hive 元數(shù)據(jù)的三種連接方式
https://www.cnblogs.com/snowbook/p/5886438.html

但此刻節(jié)點(diǎn)3的9083端口上并沒(méi)有啟動(dòng) matastore 服務(wù),因此集群上的任意節(jié)點(diǎn)都無(wú)法遠(yuǎn)程訪問(wèn),自然無(wú)法讀取元數(shù)據(jù)。

解決方案:

在節(jié)點(diǎn)3上使用如下命令啟動(dòng) metastore 服務(wù):

# 后臺(tái)啟動(dòng) metastore 服務(wù)器端,默認(rèn)使用 9083 端口
nohup hive --service metastore &

# 或者使用指定的端口號(hào):
nohup hive --service metastore -p 9083 &

需要注意:服務(wù)器端口號(hào)需要與客戶端配置文件中配置的監(jiān)聽(tīng)端口號(hào)一致

再次啟動(dòng) Hive 查看數(shù)據(jù)庫(kù)列表,成功!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容