在CDH平台上配置HA后,hdfs服务正常运行,hive服务可以正常连接,但是进行查询时报错。
现象:查询时卡主不动,然后报错显示旧的那么namenode名称,而实际上我们已经配置了HA,应该连接的是一个namespace,该namespace名称下有一主一备两个namenode。
解决方法:
-
在CDH Web UI上进入到hive界面,停止hive服务,并运行更新 Hive metastore NameNode
image.png - 在metastore数据库手动更新,修改hive元数据mysql信息表DBS和SDS,更新后,hive就可以找到之前的元数据进行查询了。
USE metastore;
这里把数据库的元数据地址信息更新成新的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');