Beeline连接
!connect jdbc:hive2://ip:port
用户名 hive
密码 hive
有的创建的hive数据库可能存在乱码的现象,故本次一并解决。
1.修改Mysql中的hive表相关配置
修改表字段注解和表注解
use hive;# mysql元数据库
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 PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
2.在ambari的UI页面修改 metastore 的连接 URL
注意修改完成后要重启Hive
jdbc:mysql://ip:3306/database?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8
3.创建数据库
CREATE SCHEMA lys_test01;
show create database lys_test01;
drop database lys_test01;
4.创建hive表结构
# hive表需要分桶,因为nifi数据接入要求分桶,并开启事务
CREATE TABLE ODS_BKS_XSJBXX (
XH STRING COMMENT '学号',
XM STRING COMMENT '姓名',
SJTBCKSJ TIMESTAMP COMMENT '数据同步仓库时间'
)CLUSTERED BY (
XH )
INTO 1 BUCKETS
STORED AS orc
TBLPROPERTIES (
'transactional'='true');
# 查看表结构
desc ods_bks_xsjbxx;
5. 插入表数据
insert into table ODS_BKS_XSJBXX values
('001','张三','2020-08-01 00:00:00'),
('002','李四','2020-08-02 00:00:00');
常遇到的问题
hive表中 desc 及 show create table 查出来字段和表的中文comment全是 ?
解决方案:
1、进入CDH的元数据库mysql执行:show create database hive; 发现默认是utf8类型
mysql> show create database hive;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| hive | CREATE DATABASE `hive` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
2、更改默认编码为latin1
mysql> alter database hive default character set latin1;
3、在mysql中修改hive元数据属性
mysql> use hive;
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;
重新建Hive表,字段和表的中文comment正常。