您的位置:首页 > 其它

解决hive中文乱码

2017-12-25 23:18 260 查看
  在hive中创建表,加上COMMENT后面的中文注释;此时如果直接desc formatted tableName会发现,注释的内容是一串问号。这是因为hive初始化安装后,在mysql里面创建的库和表都是以latin1存储的。

  此时如果直接在/etc/my.cnf下配置mysql的默认编码为utf-8,会发现进入hive命令行后,create database,drop database等操作都会报错误。

  正确的解决办法应该是现在mysql中执行以下命令:

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;

  然后重新进入hive命令行,删除之前的库和表,然后重新创建就ok了。需要注意的是hive安装目录下的conf/hive-site.xml配置与mysql连接的jdbc时必须在后面加上参数&characterEncoding=UTF-8,本人就是忘记加了这个,其他的都改成了utf-8还是不行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: