hive中的beeline上执行一些简单命令

1,hive cli 和 beeline

hive提供了很多种连接方式:                                                                                                                                                                                       cli           //基于Apache thrift                                                                                                                                                               beeline  //基于jdbc

2,查看hive服务与帮助

   hive  --service cli --help                         //查看hive cli帮助文档                                                                                                           hive  --service cli                                  //启动hive cli 同 hive                                                                                                             hive  --service hiveserver2                    //启动hiveserver2服务器,使用jdbc连接                                                                      3,启动hiveserver2会出现两个端口号(可以使用 netstat -anop 查看):

     10002        //hiveserver2 webui                                                                                                                                                           10000        //hiveserver2 rpc   用来远程jdbc连接                                                                                                                          4,hive beeline 客户端使用:

         1),首先关闭hiveserver认证

//在hive conf目录下的hive-site.xml里面编辑
<property>
		<name>hive.server2.enable.doAs</name>
		<value>false</value>
</property>

        2),启动hiceserver2服务器

hive --service hiveserver2

        3),启动beeline客户端,直接连接hiveserver2,端口10000

beeline -u jdbc:hive2://localhost:10000

5,进入beeline的一些操作

!help                 //查看帮助
!close                //关闭当前连接  如我们连接jdbc连接
!table ;              //显示表
!sh clear ;           //执行shell脚本命令
!quit ;               //退出beeline终端    

6,在beeline上执行聚合函数和高级查询

select count(*) from t1;    //统计
select max(*) from t1;      //最大值
select min(*) from t1;      //最小值
select sum(*) form t1;      //求和
select avg(*) from t1;      //求平均值
select * from t1 order by id limit 5,5; //分页
select * from (select id,name from t1) a;  //子查询或者叫嵌套查询
select  name,case when id < 3 then 'small' case when id =3 then "true"  else 'big' 
//case when等价于java中if else/switch case
select count(*),sum(id) from t1 gourp by city having id >10; // (分组)group by加条件

7,hive一些补充

          1)like和rlike区别

like和rlike一般用于模糊查询
(假如我们要从employees表中查找所有住址街道名称中含有单词Chicago和Ontario的雇员名称和街道信息)
     like实例:
           select name,address from employees 
             where address like '%Chicago%' OR address like '%Ontario%';
     rlike实例:
           select name,address from employees
             where address rlike '.*(Chicago|Ontario).*';
我们看的出来rlike是like的强化版,支持java的正则表达式,更方便,简化代码
    

        2)hive端聚合优化

                hive.map.aggr=true;    //默认是打开的,不过相当于没说吧

       3)  MR避免的条件

          1,无条件查询(没有where子句)

          2,有where语句,但只包含分区字段

          3,让hive判断是否自动运行本地模式,默认是false

                hive.exec.mode.local.auto=true

                           

猜你喜欢

转载自blog.csdn.net/weixin_41122339/article/details/81608047