0


Hive中文乱码的解决方法

Hive中文乱码的解决方法

问题描述:书写hive sql的时候发现注释等地方的中文是乱码情况。
接下来我来带领大家解决这个问题

一、修改Hive源数据库的码表信息(mysql为例)

去MySQL的hive3数据库中, 修改Hive的码表信息
因为Hive的元数据(表名, 列名, 数据类型, 描述信息等)都是在MySQL中存储的.

-- 执行如下的代码-- (1)修改表字段注解和表注解use hive3;altertable COLUMNS_V2 modifycolumnCOMMENTvarchar(256)characterset utf8;altertable TABLE_PARAMS modifycolumn PARAM_VALUE varchar(4000)characterset utf8;-- (2)修改分区字段注解altertable PARTITION_PARAMS modifycolumn PARAM_VALUE varchar(4000)characterset utf8 ;altertable PARTITION_KEYS modifycolumn PKEY_COMMENT varchar(4000)characterset utf8;-- (3)修改索引注解altertable INDEX_PARAMS modifycolumn PARAM_VALUE varchar(4000)characterset utf8;

方式一:在Linux中进入MySQL进行修改Hive码表信息

在这里插入图片描述

方式二、通过可视化软件链接MySQL修改码表信息
链接方式(DataGrip为例):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二、修改hive软件的配置信息

  1. 去Linux中, 修改hive软件的配置信息, 配置文件是hive-site.xml 文件. 把如下的内容, 添加到 **<configuration> </configuration>**标签中即可. 注意:一定要在标签该标签内!!! 注意:一定要在标签该标签内!!! 注意:一定要在标签该标签内!!!
        <!-- 存储元数据mysql相关配置 -->
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>

三、重启服务.

在Linux中, 关闭metastore服务, hiveserver2服务, 然后重启这两个服务.

kill-9 pid值  pid值
        nohup hive --service metastore &    # 如果未配置环境变量,请在hive的bin目录下执行此语句
        nohup hive --service hiveserver2 &    # 如果未配置环境变量,请在hive的bin目录下执行此语句

到这里就解决了hive中文乱码的问题
我们以后创建表注释等地方的中文就不会是乱码了
如果想解决之前已经创建的表中中文乱码的情况,则需要删除重建。


本文转载自: https://blog.csdn.net/weixin_48663895/article/details/135541255
版权归原作者 抹梦 所有, 如有侵权,请联系我们删除。

“Hive中文乱码的解决方法”的评论:

还没有评论