说明:今天我将集群的主机名修改了,集群能正常启动,但启动hive后,从hive的其中一张表中获取数据出现错误
错误如下:
FAILED: SemanticException Unable to determine if hdfs://master:9000/user/hive/warehouse/emp is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://master:9000/user/ hive/warehouse/emp, expected: hdfs://hadoop01:9000
错误原因:
用mysql作为hive的元数据存储数据库,而mysql中存储hive元数据的hive数据库中表DBS,SDS这两张表中hive数据存储默认路径需要修改,但修改之前的元数据存储路径是hdfs://master:9000/user/hive/warehouse/ ,所以修改主机名后,相应的主机名也要修改。
废话不多说,请看下图 :
解决办法: 执行下面命令,修改成要修改的主机名就好了
update DBS set DB_LOCATION_URI=REPLACE (DB_LOCATION_URI,'master:9000','hadoop01:9000'); update SDS set LOCATION=REPLACE (LOCATION,'qianfeng01:8020','hadoop01:9000');