HIVE SQL 启动hive,hive基础语句,求pv,uv

本文详细介绍了Hive SQL的基础操作,包括如何启动Hive服务,使用beeline客户端连接Hiveserver,以及Hive中的各种JOIN操作。重点讲解了笛卡尔积的各种形式,以及如何通过分区表来计算PV(页面浏览量)和UV(独立访客数)。此外,还探讨了order by、distributed by、sort by的区别,并简要提到了Hive MR参数设置。
摘要由CSDN通过智能技术生成

第十一单元 HIVE SQL 、Hive MR参数设置

1、知识点回顾

hive数据库是hdfs上的文件夹,表也是文件夹,表里的数据是文件
hive建表

create table 表名(字段1 类型1,字段2 类型2……)
row format delimited fields terminated by '字段分隔符';

为一键启动集群中的zookeeper,以下提供参考脚本:

#vim my-zkServer.sh 添加如下内容:
/opt/zookeeper-3.4.10/bin/zkServer.sh $1
ssh hdp2 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1"
ssh hdp3 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1"
#source /etc/profile 的目的是将profile中的JAVA_HOME路径提升为全局变量才能到相应的服务器启动具体操作:
#赋予权限 chmod +x my-zkServer.sh
#一键启动zookeeper集群:./my-zkServer.sh start
#一键停止zookeeper集群:./my-zkServer.sh stop
2、测试阶段可以把集群运行环境切换为本地运行 yarn -> local
<!-- vim mapred-site.xml -->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>local</value>
    </property>
</configuration>
<!-- 则之后提交job运行mr不需要启动yarn -->

mapreduce.framework.name设置为local,则不会使用YARN集群来分配资源,在本地节点执行。在本地模式运行的任务,无法发挥集群的优势。注:在web UI是查看不到本地模式运行的任务。

3、hive以服务方式运行:

启动服务:./hive --service hiveserver2 &

查看端口:netstat -tunl

hiveserver端口:10000

4、beeline客户端连接hiveserver

bin/beeline
!connect jdbc:hive2://hdp1:10000
root
回车(hive的默认不认证用户名密码)

5、建表,内部表和外部表
hive建表语句
建内部表
create table t_student(id string,name string,age int,classNo string)
row format delimited
fields terminated by ',';

建外部表
create external table t_a(id string,name string)
row format delimited fields terminated by ','
location '/ainput';

删除表
drop table xx
删除内部表是连同表结构和数据一起删除
删除外部表只删除表结构,不删除存储在hdfs上的数据

hive导入数据的语句
从hiverserver本地导入,注意不是beeline客户端的本地
load data local inpath '/root/b.dat' into table t_b;
从hdfs上导入数据(移动)
load data inpath '/datafromhdfs/a.dat' into table t_a;

6、笛卡尔积 join

笛卡尔积定义:

设A和B是两个集合,存在一个集合,它的元素是用A中元素为第一个元素,B中元素为第二个元素构成的有序二元组。称它为集合A和B的笛卡尔积集,记为A×B。即

A×B = {(a,b)|a∈A,b∈B}

例 A={1,2}

​ B={a,b,c}

​ A×B = {(1,a),(1,b),(1,c),(2,a),(2,b),(2,c)}

join例子:

a.dat

a,1
b,2
c,3
d,4

b.dat

a,xx
b,yy
d,zz
e,pp

创建表t_a ,t_b与以上数据对应并导入数据。

create table t_a(id string,name string)
row format delimited fields terminated by ',';

create table t_b(id string,name string)
row format delimited fields terminated by ',';

load data local inpath '/root/a.dat' into table t_a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值