解决hive元信息乱码的问题

来源:互联网 发布:网络监测软件 编辑:程序博客网 时间:2024/06/05 11:42
1、修改hive元信息库为utf8编码,然后表和字段也是




ALTER TABLE DBS DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE TBLS DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE COLUMNS_V2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;




alter table DBS modify column `DESC` varchar(4000) character set utf8 DEFAULT NULL;
alter table DBS modify column `DB_LOCATION_URI` varchar(4000) character set utf8 NOT NULL;
alter table DBS modify column `NAME` varchar(128) character set utf8 DEFAULT NULL;
alter table DBS modify column `OWNER_NAME` varchar(128) character set utf8 DEFAULT NULL;
alter table DBS modify column `OWNER_TYPE` varchar(10) character set utf8 DEFAULT NULL;


alter table TBLS modify column `OWNER` varchar(767) character set utf8 DEFAULT NULL;
alter table TBLS modify column `TBL_NAME` varchar(128) character set utf8 DEFAULT NULL;
alter table TBLS modify column `TBL_TYPE` varchar(128) character set utf8 DEFAULT NULL;
alter table TBLS modify column `VIEW_EXPANDED_TEXT` mediumtext character set utf8;
alter table TBLS modify column `VIEW_ORIGINAL_TEXT` mediumtext character set utf8;


alter table COLUMNS_V2 modify column `COMMENT` varchar(256) character set utf8 DEFAULT NULL;
alter table COLUMNS_V2 modify column `COLUMN_NAME` varchar(128) character set utf8 NOT NULL;
alter table COLUMNS_V2 modify column `TYPE_NAME` varchar(4000) character set utf8 DEFAULT NULL;


2、这样改了以后,对于hive1.2以前的版本,执行show create table还是会显示乱码,需要修改两行hive-exec模块的两行代码,编译后替换掉原有jar,方法可以参考:

https://issues.apache.org/jira/browse/HIVE-11837

其实执行 desc formatted tab_name 是不会有问题的

0 0
原创粉丝点击