hive 表注释显示中文乱码

hive 表注释显示中文乱码
hive> show create table dim_mobile;
OK
createtab_stmt
CREATE TABLE `dim_mobile`(
  `mobileno` string COMMENT '?????MD5?',
  `carrier` string COMMENT '???',
  `provid` int COMMENT '?????ID',
  `provname` string COMMENT '?????',
  `cityid` int COMMENT '?????ID',
  `cityname` string COMMENT '?????',
  `provtagid` int COMMENT '????',
  `citytagid` int COMMENT '????',
  `updatetime` bigint COMMENT '??????')
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
WITH SERDEPROPERTIES (
  'field.delim'='\t',
  'line.delim'='\n',
  'serialization.format'='\t')
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION


select查询
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 18.8 sec   HDFS Read: 257335592 HDFS Write: 2603 SUCCESS
Total MapReduce CPU Time Spent: 18 seconds 800 msec
OK
dim_mobile.mobileno     dim_mobile.carrier      dim_mobile.provid       dim_mobile.provname     dim_mobile.cityid  dim_mobile.cityname      dim_mobile.provtagid    dim_mobile.citytagid    dim_mobile.updatetime
869824310804ff6ee6b862a756137dd9        中国联通        420000  湖北    420100  武汉    42      261     1552611701
da08ce28b1fbe63589879afccef6db57        中国移动        320000  江苏    321100  镇江    32      120     1552611701
d7a183f19e722bd0052ea6bbcb12bea2        中国移动        440000  广东    440600  佛山    44      312     1552611701
bfe10ae97d40ab8000dfc1a49ad5363e        中国移动        440000  广东    440100  广州    44      307     1552611701
d41c1c28a4343a192d833b6cec7ed923        中国移动        520000  贵州    520300  遵义    52      408     1552611701
626b909540d82e40fc4684c3dce21383                0               0               0       0       1552611701
e332c1b37853945c1df713f631bb7658        中国联通        520000  贵州    520100  贵阳    52      406     1552611701
b9e11f739c54e4288642fb59642a885e        中国联通        430000  湖南    430400  衡阳    43      286     1552611701
a218998e82ba3a7cc7418d6be76d9b90        中国移动        410000  河南    410700  新乡    41      239     1552611701
327d6322e5ab9d1ffff00e9abf94a250        中国联通        410000  河南    410100  郑州    41      233     1552611701
3e5e352247aa335b9f23481d36aa91eb        中国电信        430000  湖南    430600  岳阳    43      288     1552611701
ecfca27c5622d901ea69da644f7b0b63        中国移动        370000  山东    370300  淄博    37      209     1552611701
628800dfc7eeb5e55478708c13d48871        中国移动        330000  浙江    330100  杭州    33      130     1552611701


二、解决方法
1、进入mysql执行:show create database metastore;  发现默认是utf8类型    

mysql> show create database metastore;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| metastore     | CREATE DATABASE `metastore` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+

2、在mysql中修改metastore元数据属性

mysql> use metastore;

mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

mysql> alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

mysql> alter table PARTITION_PARAMS  modify column PARAM_VALUE varchar(4000) character set utf8;

mysql> alter table PARTITION_KEYS  modify column PKEY_COMMENT varchar(4000) character set utf8;

mysql> alter table  INDEX_PARAMS  modify column PARAM_VALUE  varchar(4000) character set utf8;
4、重新建表,再desc查看,此时中文注释显示正常。(show create table显示也是正常的)

你可能感兴趣的:(hive)