`

linux客户端中文乱码

 
阅读更多

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&amp;characterEncoding=UTF-8&amp;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&amp;characterEncoding=UTF-8&amp;user=hive&amp;password=hv123.&amp;createDatabaseIfNotExist=true</value>
  <description>The default connection string for the database that stores temporary hive statistics.</description>
</property>





分享到:
评论

相关推荐

    Linux系统中文乱码解决完整方案

    在 Linux 系统中,中文文件在 ssh 终端中显示为乱码,这是由于 SSH 客户端和 Linux 服务器之间的字符集不同所导致的。解决这个问题,需要修改 Linux 系统的默认字符集,使其与 Windows 系统的一致。 本文档提供了两...

    Oracle客户端PL/SQL 中文乱码解决

    然而,当用户在使用Oracle客户端进行PL/SQL开发时,经常遇到一个棘手的问题——中文乱码。这个问题通常出现在查询结果、日志输出或者交互式输入时,给数据库操作带来不便。本文将深入探讨这个问题,并提供解决方案。...

    linux解决中文乱码问题

    总结来说,解决Linux中的中文乱码问题需要从多个角度出发,包括系统locale设置、终端配置、编辑器设置、SSH客户端设置以及针对特定情况的特殊处理。通过以上方法,一般可以有效避免和解决中文乱码问题,使得在Linux...

    LINUX中文乱码解决方法

    ### Linux中文乱码解决方法 在使用Linux操作系统的过程中,用户可能会遇到中文显示出现乱码的情况。这种情况通常是由于系统编码设置不正确或者环境变量配置不当所导致的。本文将详细介绍如何解决Linux中的中文乱码...

    Linux上安装Oracle汉字乱码完整解决方案

    本文提供了一个完整的解决方案,旨在帮助用户在保持Linux中文环境的情况下,顺利安装Oracle并解决汉字乱码问题。 首先,我们需要安装Java Development Kit (JDK),因为Oracle数据库的安装和配置过程需要用到JDK。在...

    Linux 5中文显示乱码

    在Linux系统中,中文显示乱码是一个常见的问题,特别是在旧版本如Linux 5中更为突出。这通常是由于字符编码设置不正确或者缺少支持中文字符集的字体导致的。要解决这个问题,我们需要理解字符编码的基本原理,并掌握...

    Linux中文乱码问题.pdf

    Linux系统中的中文乱码问题是一个常见的问题,主要发生在系统、终端、文件及网页浏览时。解决中文乱码问题,首先需要了解字符编码的基础知识和Linux系统中的locale设置。 字符编码是指用数字来表示字符和符号的方法...

    LINUX SSH显示中文乱码解决

    然而,一个常见的问题是当我们在Windows环境下使用SSH客户端(如PuTTY等)连接到Linux服务器时,可能会遇到中文字符显示为乱码的情况。这不仅影响了阅读体验,还可能对系统的维护和开发工作造成不便。本文将详细介绍...

    Linux oracle em 中文乱码解决方案

    在Linux环境下管理和维护Oracle数据库时,可能会遇到Oracle企业管理器(Enterprise Manager, EM)显示中文乱码的问题。这通常是由于字符编码设置不正确导致的。本文将深入探讨这个问题,并提供有效的解决方案。 首先...

    7、命令行客户端出现乱码的解决方案1

    标题提及的"7、命令行客户端出现乱码的解决方案1",指的是在使用命令行工具(如Windows的cmd或Linux的Terminal)连接MySQL数据库时,由于字符编码不匹配导致显示的乱码现象。这种问题通常发生在输入或输出含有非...

    Linux上安装Oracle汉字乱码完整解决方案_javacn

    4. **解决客户端乱码**: - 确保客户端工具(如SQL*Plus)也使用与服务器相同的字符集。可以在启动SQL*Plus时通过`NLS_LANG`环境变量设置,例如:`export NLS_LANG=AMERICAN_AMERICA.AL32UTF8`。 5. **处理数据...

    linux mysql中文乱码问题解决

    ### Linux MySQL中文乱码问题解决 #### 背景与问题描述 在使用Linux系统部署MySQL数据库时,可能会遇到中文字符显示为乱码的问题。这一现象通常发生在对含有中文字符的数据进行读取或写入操作时。中文乱码不仅影响...

    udp通信,windows和linux版本

    出现中文乱码的话,那一定是运行此程序的窗口的编码格式不一致,只要改为一致就可以了。如果要将dos窗口的编码方式改为UTF8,可参考:http://blog.csdn.net/joeblackzqq/article/details/7010322

    SecureCRT中文乱码解决方法

    然而,在使用 SecureCRT 连接 Linux 服务器时,可能会出现中文乱码的情况,这是由于 SecureCRT 字符编码与服务器的字符编码不一致造成的。 SecureCRT 的字符编码问题 SecureCRT 的字符编码问题是导致中文乱码的...

    Linux上Oracle安装前汉字乱码和安装后创建数据库乱码的解决方法(含附件)

    在Linux环境中安装Oracle数据库时,可能会遇到汉字乱码的问题,这不仅影响了正常的安装过程,也可能导致后续数据库操作中的数据不准确。以下是一份详细的解决此类问题的指南,旨在帮助你顺利进行Oracle安装并创建无...

    终极解决Linux乱码

    ### 终极解决Linux乱码:中文字符乱码详解与解决方案 在Linux系统中,遇到中文乱码的问题是不少用户和管理员都会遭遇的常见难题。本文将深入解析Linux中文乱码的原因,并提供一系列有效的解决方案,旨在帮助用户...

    远程登录linux,使用vi和less查看文本出现中文乱码,使用cat正常.docx

    远程登录 Linux 中中文乱码解决方案 在远程登录 Linux 系统时,使用 vi 和 less 查看文本可能会出现中文乱码的问题。这是因为 Linux 系统的字符编码问题导致的。下面将详细介绍解决这个问题的方法。 问题分析 在...

    关于Linux下中文乱码的完整处理方案.docx

    在Linux环境下,中文乱码问题是一个常见的困扰,尤其是在与Windows系统交互时。本文将详细介绍如何解决这一问题,提供一个完整的处理方案。 首先,中文乱码出现的原因在于字符编码的不一致。Linux系统通常使用...

    部署到linux服务器文件名乱码问题

    具体表现为,在将文件从Linux服务器下载到Windows系统后再上传到另一台Linux服务器时,原本正常的中文文件名变成了乱码。这一问题严重影响了项目的正常运行。 #### 二、问题分析与排查 ##### 1. 初步判断与检查 ...

    Linux下MySQL解决乱码问题

    在使用Linux系统时,部分用户可能会遇到MySQL数据库无法正确显示或录入中文字符的问题,即所谓的“乱码”现象。这种问题不仅影响数据的准确性和完整性,还可能阻碍业务流程的正常运作。本文将详细介绍如何在Linux...

Global site tag (gtag.js) - Google Analytics