centos hive mysql_Centos中hive/hbase/hadoop/mysql实际操作及问题总结

Hive中文乱码问题

众所周知,我们都是使用mysql存储hive的元数据,可以执行带有中文注释的建表文件,解决中文乱码的问题:

要把元数据库设定为latin1而把存储中文的数据表的编码设定为utf-8格式,即存储在hive里的表是utf-8的。

以下几种是不可行的:

1. 将meta database(mysql)的编码设定为utf-8.hive运行会报错

2.将meta server(mysql)的编码全部设定为latin1.表格在导入时会出现Incorrect string value: ‘\xC2\x8A\xC2\xA8\xC3\xA7…’ 的错误。

所以,将数据库编码为latin1,表编码设定为utf8

例子:

1.按照latin1编码建立hive的meta数据库

2.修改hive-seite.xml的连接编码为UTF8

javax.jdo.option.ConnectionURL

jdbc:mysql://localhost:3306/hive?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true

3.修改表编码

简单:values为列

alter table detail3 modify values character set utf8;

加注释:name为列

alter table tabletest modify name COMMENT varchar(256) character set utf8;

如果在SecureCRT运行hive客户端,则

(1)SecureCRT的Options-Session Options-Character encoding设置为UTF-8;

(2)SecureCRT的Options-Session Options-Normal font设置为Fixedsys,同时字符集设置为CHINESE_GB2312。

原文:http://www.cnblogs.com/kxdblog/p/4171083.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值