如何修改Hive元数据中的协议地址
导致问题的原因
分布式集群修改成HA集群,HDFS的协议地址由hdfs://hadoop2:9000变成hdfs://myha01/
导致与HDFS协议地址有关的元信息仍然是旧版本的协议地址
1.元信息的DBS表,保存所有数据库的基本信息,如下图所示:
2.元信息的SDS表,保存所有数据库文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等,如下图所示:
旧版本建立的数据库由于表数据已经删除了,完全可以删除,但是default表是默认的表不能删除,所以现在就只能将协议地址改成新版本的
修改协议地址
1.修改DBS表,输入如下代码
mysql> update DBS set DB_LOCATION_URI="hdfs://myha01/user/hive/warehouse/" where DB_ID=1;
修改后如图所示:
2.修改SDS表,输入如下代码
mysql> update sds set LOCATION = REPLACE(LOCATION,'hadoop2:9000','myha01');
修改后下图所示: