hive中文乱码的解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hive中文乱码的解决方案
1. 修改Hive 的配置文件
在Hive 的配置文件hive-site.xml (一般位于HIVE_HOME/conf 目录下) 中添加以下内容:
<property>
<name>javax.jdo.option.ConnectionProperties</name>
<value>characterEncoding=UTF-8</value>
</property>
重启Hive 服务,重新连接Hive 即可。
2. 修改Hadoop 的配置文件
如果上述方法未生效,可以考虑在Hadoop 的配置文件core-site.xml 中添加以下内容:
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>file.encoding</name>
<value>UTF-8</value>
</property>
然后重启Hadoop 和Hive 服务,重新连接Hive 即可。
3. 修改客户端的字符集
如果上述方法未生效,可以尝试修改客户端的字符集,在连接Hive 时指定字符集为UTF-8:
jdbc:hive2:localhost:10000/default;stringtype=utf-8
或者在Hive shell 中执行以下语句:
set mapred.input.encoding=UTF-8; set mapred.output.encoding=UTF-8; set hive.cli.print.header=true;
set hive.cli.print.current.db=true; set hive.session.id=0;
然后重新执行Hive 命令即可。