在最新版本的emr-1.3.0已經解決了hive comment中文亂碼問題。如果已經申請了包年包月的叢集,用的是老版本,那麼可以過下面介紹的步驟解決這個問題。
1.登入mysql變更hive的meta表
use hivemeta;
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服務
ps -ef | grep hive ;将列出來的程序kill掉。然後重新開機hive服務
hive --service metastore 2>&1 >/dev/null &
hive --service hiveserver2 2>&1 >/dev/null &
4. 重建立表
帶中文comment建立表。
然後desc tablename檢視。