首先将hive在mysql中元数据编码修改为utf-8:
mysql –u root –p # 进入mysql
drop database hive; -- 删除以前的元数据库,防止残留
create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
-- 修改字段注释字符集
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_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 INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
FLUSH PRIVILEGES;
修改hive-site.xml
jdbc:mysql://locahost:3306/hive?useSSL=false&useUnicode=true&characterEncoding=UTF-8
在hive-env.sh
文件的最后加上编码格式:
export HADOOP_OPTS="$HADOOP_OPTS -Dfile.encoding=UTF-8"
最后重启hive
bin/hiveserver2 restart
网友评论