hive中文问题解决办法:
关键是 终端console-->linux OS环境变量-->hdfs上的hive table对应文件 三个层次,都设为使用UTF-8。
1. 到sourceforge.net上,下载putty英文版0.63(不要下中文版,曾有带木马),在如下位置设为UTF-8:
2. 将linux OS层/etc/sysconfig/i18n中LANG修改为en_US.UTF-8
[hadoop@CNSZ141196 ~]$ cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="lat0-sun16"
3. hive table文件默认为UTF-8字符集编码,无需改动
4. 测试如下,可见在putty终端console上可正常输入中文,写入hive表;select出来也可正常显示;load into、 hive -f 方式也测试通过:
[hadoop@CNSZ141196 ~]$ hive -e "insert into table test01.test01 select '中文测试' from dual;"
……
[hadoop@CNSZ141196 ~]$ hive -e "select * from test01.test01;"
Logging initialized using configuration in file:/appcom/hive-config/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_3297@CNSZ141196.app.paic.com.cn_201309111524_494470832.txt
OK
中文测试
中国
中文
Time taken: 3.199 seconds, Fetched: 3 row(s)
[hadoop@CNSZ141196 ~]$
OS语言环境变量配置
for i in cnsz0317{74..87};do /home/hadoop/scripts/autoLoginRoot.sh hadoop $i paic1234 anyword ""'sed -i "/LANG=/{s%"en_US"%"en_US.UTF-8"%g}" /etc/sysconfig/i18n'"";done
检查点:
for i in cnsz0317{74..87};do ssh $i ""'echo "#############";hostname;cat /etc/sysconfig/i18n;sleep 0.5'""; done
问题:
hive comment无法支持中文
处理:
修改mysql中hive_meta数据库使hive comment支持中文:
alter table DBS modify column `DESC` varchar(4000) character set utf8;
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 INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
查看修改结果:
mysql> SHOW CREATE TABLE TABLE_PARAMS \G
*************************** 1. row ***************************
Table: TABLE_PARAMS
Create Table: CREATE TABLE `TABLE_PARAMS` (
`TBL_ID` bigint(20) NOT NULL,
`PARAM_KEY` varchar(256) CHARACTER SET latin2 COLLATE latin2_bin NOT NULL,
`PARAM_VALUE` varchar(4000) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`TBL_ID`,`PARAM_KEY`),
KEY `TABLE_PARAMS_N49` (`TBL_ID`),
CONSTRAINT `TABLE_PARAMS_FK1` FOREIGN KEY (`TBL_ID`) REFERENCES `TBLS` (`TBL_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2
1 row in set (0.00 sec)
修改hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://CNSZ141196.app.paic.com.cn:3306/hive_meta?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>hive.stats.dbconnectionstring</name>
<value>jdbc:mysql://CNSZ141196.app.paic.com.cn:3306/hive_stats?useUnicode=true&characterEncoding=UTF-8&user=hive&password=hv123.&createDatabaseIfNotExist=true</value>
<description>The default connection string for the database that stores temporary hive statistics.</description>
</property>
分享到:
相关推荐
出现中文乱码的话,那一定是运行此程序的窗口的编码格式不一致,只要改为一致就可以了。如果要将dos窗口的编码方式改为UTF8,可参考:http://blog.csdn.net/joeblackzqq/article/details/7010322
linux下部署linux ftp,windows客户端下访问出现乱码,调整字符集手册
项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。 在整个流程中,出现错误的原因可能是三个:post未设置编码或者编码不相符合,jdbc出现问题,...
问题:vi编辑器编辑文件时文件中的内容中文显示乱码,但是直接使用linux系统terminal打开此文件时中文显示正常,确诊问题出现在客户端即SecureCRT的显示问题 解决方法: 1、修改远程linux机器的配置 [root@rhel ~]#...
编写socket通信,服务器和客户端分别是windows和linux.但是收到的数据不是乱码 什么原因 如何解决.zip
经多番查找,发现了这个 html2fpdf 的PHP类,搜索有关资料以及实际测试,发现官方下载的类文件中并没有加入对中文的支持,因此输出带有中文的网页会出现乱码。 好在官方提供了Chinese支持文件,但苦于不知如何使用...
1.数据库环境导致的乱码:需要设定客户端的编码格式和数据库的编码格式相同:NLS_LANG变量 2.汉字在报表上显示为方块: 原因:缺少ARIALUNI.TTF字体 解决方案:copy ARIALUNI.TTF 到 /usr/X11R6/lib/X11/fonts/...
redis命令行查看中文不乱码 Redis在使用命令行操作时,如果查看内容中包含中文,会显示16进制的字符串”\xe4\xb8\xad\xe5\x9b\xbd” 127.0.0.1:6379> set k1 '中国' OK 127.0.0.1:6379> get k1 "\xe4\xb8\xad\xe5\...
ubuntu的校园网客户端,支持中文,中文显示不乱码。
但WinSCP不支持编码选择,也就是说,你在Windows下使用WinSCP连接一个Linux机器,因为Linux和Windows的默认编码不同,因此是无法访问上面的中文文件或者文件夹的(将看到乱码)。一种解决方法就是在打开winscp时...
Xftp 7是一种灵活且轻量级的SFFT/FTP客户端,用于需要安全地通过网络传输文件的用户。使用Xftp7软件能让文件传输被...重要的是可以自定义上传文件的编码 可以有效解决 由WINDOWS平台访问LINUX平台FTP中文件名乱码的问题
Linux下的FTP客户端Linux下CLI中的FTP客户端代码和互联网应用课程项目的报告。 该代码是几年前在我的本科课程中编写的。 通过多次上传/下载、zip/upzid 和在不同语言环境中打开,文件中出现了一些奇怪的乱码。 如果...
中文乱码解决方法 在home目录下Ctrl+h 将显示.wine文件夹,把window系统中的C:\WINDOWS\Fonts文件夹直接copy到.wine/drive_c/windows 目录中并覆盖其Fonts目录即可。 将语言设置成英文也行 配置桌面快捷键 在终端...
2、本地的Shell客户端编码也设置成UTF-8,这样让在windows上传到linux的文件或者目录不会出现乱码; 3、重要:如果用SecureFXPortable上传时需要需要手工编辑SecrueFX的这个Session的配置文件才行(找到...
CentOS 6 安装VirtualBox客户端增强功能、Windows 7同 Linux双启动、修复Windows 7系统MBR、常用配置文件、Linux终端乱码的解决办法
跨平台 - 支持的操作系统有 Windows, Linux, MacOS 和Solaris 多种传输协议 - 支持FTP, FTPS, HTTP, HTTPS 和SFTP 基于Web的管理端 - 随时随地管理你的服务器 基于Web的客户端 - 随时随地分享,存取你的文件 ...
RHEL5.1安装VM TOOL及解决中文乱码方案 11月1日课程 6、shell以及环境变量 RHCE课程-RH033Linux基础笔记四 11月2日课程 7、常用文本文件编辑查看命令及VIM RHCE课程-RH033Linux基础笔记五 11月8日课程 8、网卡,...
Xshell 是目前最好的linux远程登录工具,速度流畅且完美解决了中文乱码。 Xshell 是一个强大的安全终端模拟软件,支持SSH1、SSH2以及Miscrosoft Windows 的 TELNET协议。 -----------------------------------------...
Firebrid在常见的平台上都可运行,如Linux和Windows(包括Windows终端服务器)其它支持的平台包括(MAC OS(苹果机), Solaris及HP-UX) 把数据库从一个平台转到另一个平台,非常的容易,只要备份数据库,然后,再...
2012年我的本科毕业设计,...打开后,如果有乱码(使用Linux时搞的压缩包,可能会出现乱码),双击打开Release里面的exe文件即可看出是服务器端还是客户端!数据库当时使用的是MySQL数据库,其他的没测试过,不知会不会出现错误!