报错背景
hive创建数据库时添加中文备注信息报错。
命令:CREATE DATABASE IF NOT EXISTS hive_ods_db COMMENT 'Hive ODS层数据库';
报错现象
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Exception thrown flushing changes to datastore)
报错原因
MySQL的存储注释信息的列的字符集有问题,需要修改。
报错解决
在MySQL终端执行如下命令:
-- 修改数据库编码 set character_set_database =latin1; -- 切换到hive数据库 use hive-metadata; -- 修改字段注释字符集 alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8; -- 修改表注释字符集 alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; -- 修改分区注释字符集 alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8; -- 修改数据库注释字符集 alter table DBS modify column `DESC` varchar(4000) character set utf8;