在CDH平臺(tái)上配置HA后,hdfs服務(wù)正常運(yùn)行勺爱,hive服務(wù)可以正常連接晃琳,但是進(jìn)行查詢時(shí)報(bào)錯(cuò)。
現(xiàn)象:查詢時(shí)卡主不動(dòng),然后報(bào)錯(cuò)顯示舊的那么namenode名稱卫旱,而實(shí)際上我們已經(jīng)配置了HA人灼,應(yīng)該連接的是一個(gè)namespace,該namespace名稱下有一主一備兩個(gè)namenode顾翼。
解決方法:
-
在CDH Web UI上進(jìn)入到hive界面投放,停止hive服務(wù),并運(yùn)行更新 Hive metastore NameNode
image.png - 在metastore數(shù)據(jù)庫手動(dòng)更新适贸,修改hive元數(shù)據(jù)mysql信息表DBS和SDS灸芳,更新后,hive就可以找到之前的元數(shù)據(jù)進(jìn)行查詢了拜姿。
USE metastore;
這里把數(shù)據(jù)庫的元數(shù)據(jù)地址信息更新成新的HA的namespace名稱
UPDATE DBS SET DB LOCATION_URI='hdfs://cdh-HA:8020/user/hive/warehouse/' WHERE DB_ID=1
UPDATE SDS SET LOCATION = REPLACE(LOCATION,'hdfs://cdh-HA:8020','cdh-old');