1、 通过hive的cli连接
步骤
Linux:
// 执行TDH Client的init.sh脚本
1. 通过hive命令来连接hive
在xshell中,直接输入hive,即可连接hive
2. 在hive中建库
create database if not exists data ;
3. 查看database
show databases;
4. 使用指定的database
use test;
5. 通过CLi建表
//hive不区分大小写,这里将关键字用大写表示,以作提示之用
CREATE TABLE customers (id int,name string,age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
--如果表已存在就删除 drop table if exists db_msg.tb_msg_etl; --将Select语句的结果保存到新表中 create table db_msg.tb_msg_etl as select*, --原始表的所有字段仍保留 substr(msg_time,0,10) as dayinfo, --获取天 substr(msg_time,12,2) as hourinfo, --获取小时 split(sender_gps,",")[0] as sender_lng, --提取经度 split(sender_gps,",")[1] as sender_lat --提取纬度 from db_msg.tb_msg_source where length(sender_gps) > 0 ; --过滤字段为空的数据
6. 查看表结构
desc customers ;
//查看表的字段
show create table customers ;
//查看建表语句
7. 向表中插入数据
insert into customers values(1,'tom',24);
insert into customers values(2,'Jame',21);
insert into customers values(2,'周树人',21);
insert into customers values(3,'薛燊',31);
8. 查看表中的数据
select * from customers;
9. 对查询结果进行全排序
select * from customers order by id asc ;
//排序时,会转换成MR任务
//sort进行的时map端排序。
select * from customers sort by id asc ;
//DISTRIBUTE BY类似于mysql的group by,进行分区操作。
select * from customers distribute by age sort by id ;
//注意顺序.
select * from customers distribute by id sort by age desc ;
10. 导出表结构和数据
EXPORT TABLE customers TO '/root/customers.txt';
后面是想cp到hdfs上的文件夹
11. 在hdfs上查看导出的文件
hdfs dfs -ls -R /root
12. 退出登录
exit;
2、 通过beeline命令连接hive
l 任务:启动hiveserver2服务,并通过beeline命令连接hive和基本的HQL操作。
l 步骤
Linux:
//
1. 启动hiveserver2服务
hiveserver2
另起一个xshell客户端
2. 用beeline客户端连接hive 注意替换为自己的主机名
beeline -u jdbc:hive2://hadoop01:10000
3. 查看数据库
show databases;
退出
!q
//如果无法退出,请输入;,然后再执行