掌握大数据--解决hive中文注释乱码问题

在Hive世界,中文注释不再是乱码而困扰! 通过简单配置,告别乱码烦恼。

我们话不多说,直接用一个实际的案例来演示一下。

案例演示

1.我们先创建数据库, 切库。

create database test;
use test;

2. 创建内部表, 这里我们用王者荣耀的射手英雄来创一个表。

create table t_archer_inner(
    id            int comment 'ID',
    name          string comment '英雄',
    hp_max        int comment '最大生命',
    mp_max        int comment '最大法力',
    attack_max    int comment '最高物攻',
    defense_max   int comment '最大物防',
    attack_range  string comment '攻击范围',
    role_main     string comment '主要定位',
    role_assist   string comment '次要定位'
) comment '射手表'
row format delimited fields terminated by '\t';

然后我们在浏览器打开http://你的IP:9870/​​​​​  注意必须启动Hadoop集群才能打开此网址

然后点击utilities,在出现的选项中选择第一项如图所示

然后点击user

按照他的路径点击我们就会在文件中找到我们新建的t_archer_inner表格

如果Hadoop集群是Hadoop3.X,就可以点击上传直接把源文件上传上去。非Hadoop3就使用上传load方式加载数据到上述的表中.

上传之后我们就可以直接查看表。

select * from t_archer_inner;

但是当我们查看表结构时会出现一个问题,

我们的的中文注释全部变成了乱码,这篇文章就是为了解决这个问题,通过简单配置,告别乱码烦恼。

处理方法

具体步骤如下:
    1. 去MySQL的hive3数据库中, 修改Hive的码表信息。为什么要去MySQL数据库呢?

因为Hive的元数据(表名, 列名, 数据类型, 描述信息等)都是在MySQL中存储的。

然后我们执行如下的代码:

  -- (1)修改表字段注解和表注解
        use hive3;
        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;
   -- (2)修改分区字段注解
        alter table PARTITION_PARAMS modify 
column PARAM_VALUE varchar(4000) character set utf8 ;
        alter table PARTITION_KEYS modify 
column PKEY_COMMENT varchar(4000) character set utf8;
 -- (3)修改索引注解
        alter table INDEX_PARAMS modify 
column PARAM_VALUE varchar(4000) character set utf8;

  2. 去Linux中(即: node1机器), 修改hive软件的配置信息, 配置文件是:

/export/server/hive/conf/hive-site.xml 文件。

把如下的内容, 添加到 <configuration>  </configuration>标签中即可。

 <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>

 3. 在node1机器中, 关闭metastore服务, hiveserver2服务, 然后重启这两个服务。

 kill -9 pid值  pid值
 nohup hive --service metastore &
 nohup hive --service hiveserver2 &

 4. 删除刚才创建的hive表, 然后重新创建即可, 此时: 注释乱码问题已经解决了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纪祥_ee1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值