解决hive中文乱码

  在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还是不行

你可能感兴趣的:(大数据学习笔记)