在最新版本的EMR-1.3.0已经解决了hive comment中文乱码问题。如果已经申请了包年包月的集群,用的是老版本,那么可以过下面介绍的步骤解决这个问题。
- 1.登录mysql变更hive的meta表
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;
- 2. 更改hive配置
在hadoop账号下操作,su hadoop
文件 /etc/emr/hive-conf/hive-site.xml将jdbc:mysql://${master_hostname}/hivemeta?createDatabaseIfNotExist=true 变成 jdbc:mysql://${master_hostname}/hivemeta?createDatabaseIfNotExist=true&characterEncoding=UTF-8
- 3.重启hive服务
在hadoop账号下操作,su hadoop
ps -ef | grep hive ;将列出来的进程kill掉。然后重启hive服务hive --service metastore 2>&1 >/dev/null &
hive --service hiveserver2 2>&1 >/dev/null &
- 4. 重新建表
然后desc tablename查看。