首页 > 代码库 > Centos中hive/hbase/hadoop/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
<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true</value>
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。
Centos中hive/hbase/hadoop/mysql实际操作及问题总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。