hive metastore 和 hiveServer2 遇到的問題

1. hive metastroe 的問題

這個問題最早的時候是在啓動 hive 的時候遇到的,當時報錯是:

我把 hive-site.xml 中的這部分配置註釋掉之後就不再報錯了,但是會在啓動 hive 的時候有警告,當時把這個問題直接忽略過去了,因爲已經可以 hive 已經可以正常運行了
在這裏插入圖片描述
(被註釋掉的代碼)
在這裏插入圖片描述
(啓動 hive 時的警告)
後來在嘗試 spark on hive 的時候,報了一個這個錯誤:
在這裏插入圖片描述

通過查資料,發現是需要啓動 service metastore,看到 metastore 就很熟悉,上面遇到過,於是我把上面註釋掉的代碼解除註釋,並在 master(與配置文件裏的 ip 對應) 上運行 hive --service metastore 命令,重新啓動 spark-shell,問題解決。

 nohup hive --service metastore 2>/dev/null &(一直運行、後臺啓動、日誌輸出到黑洞)

在這裏插入圖片描述
(hive 正常)
在這裏插入圖片描述
(spark 正常)
2. hiveserver2 的啓動問題
我們啓動 hiveserver2 來開啓 10000 端口,通過 idea 連接到 hive,方便地寫建表語句,第一次啓動沒有任何問題,idea 成功連接,但是過了一段時間,idea 就突然連接不上去了,我到 linux 把hiveServer2先 kill 掉,然後重新運行,發現報錯:
在這裏插入圖片描述

我當時從網上查了一些資料,發現與我們的情況都不符合,我們不可能是因爲缺少包導致的,否則第一次就啓動不起來,所以我就嘗試在 master 上也啓動 hiverserver2,發現報了同樣的錯誤,但是在該錯誤的下面還有其他正常信息:
在這裏插入圖片描述

看起來是正常的樣子,於是我嘗試用 idea 連接 master 的 hive,發現連上去了,果然和缺少Tez 沒有關係,master 可以啓動 hiveSerer2,但是 slave1 不可以,二者關於 hive 的差別就是在這裏(圖一),master 就位於 metastore 服務的主機上,而 slave1 不是。因爲我們要把 slave1 當作 hive 的主機,所以我就在三臺節點上都做了更改,把 master 改成 slave1(圖二)
在這裏插入圖片描述
(圖一)
在這裏插入圖片描述
(圖二)

更改完配置之後,kill 掉 master 上的 hive metastore service,然後在 slave1 上啓動 hive metastore service 和 hiveserver2,問題解決!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章