Hive初级使用

Hive初级使用

一、hive的安装

(暂不支持jdk1.9)

1、 解压到指定目录

2、 配置源数据储存在mysql

vi hive2.2/conf/hive-site.xml

<!--mysql的地址-->

<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.8.96:3306/hive?createDatabaseIfNotExist=true</value>
</property>

<!--mysql的驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<!--mysql的用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>

<!--mysql的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

 

3、 加mysql的jdbc的jar包到hive/lib

(下载地址:https://dev.mysql.com/downloads/connector/j/)

4、 初始化hive

        $HIVE_HOME/bin/schematool -dbType <dbtype> -initSchema

5、 启动hive

$HIVE_HOME/bin/hive

三种不同的启动方式:(1)如上

                  (2)服务、客户端连接

$ $ HIVE_HOME / bin /hiveserver2

$ $ HIVE_HOME / bin /beeline -u jdbchive2// $ HS2_HOST$ HS2_PORT

                  (3)命令行的方式(用于写脚本)

$HIVE_HOME/bin/hive –e ‘your sql’

 

二、hiveDDL语法(表定义操作)

1、建表语法

2、内部表和外部表的区别

 

 

3、从本地/hdfs中导入数据到hive

注:3.3中还可以确定列名称:

      createtable t_1_jz

      as

      select

      id asuid,

      name asuname,

      add asaddress

      fromt_1

      whereadd=’handong’;

 

4、 hive中导出数据到本地/hdfs

 

5、文件的储存格式

注:hive默认的分隔符为“\001”

 

6、添加/删除分区(必须在定义表时创建分区,否则分区添加无效)

7、修改表的列定义以及表名

修改表名:altertable t_1 rename to t_2;

 

8、显示命令

 

三、hiveDML语法(表数据操作)

1、插入数据到表中

(1)批量导入:

1)从本地磁盘:load data local inpath ‘file path’into table t_1;

2)hdfsload datainpath ‘file path’ into table t_1;

(2)单条导入:

insert into table t_1(cloumn_name1, cloumn_name1) values (“myname”,12);

2、多重插入数据到不同表中

from t_1

insert overwritetable t_2

select * where type=1

insert overwritetable t_3

select * wheretype=2;

注:insert overwriteinsert into的区别在于是否覆盖原数据。

 

3select基本语法

 

4selectjoin语法

(1)基本语法:

select a.name b.* fromt_1 a inner join t_2 b where a.id=b.id;

支持:

inner join

left join | left outer join

right join | right outer join

full join | full outer join

left semi join(半连接—--只返回左表的数据)

(2)非等值join

      老版本不支持非等值join

      新版本(1.2.0以后)支持非等值join,但是语法必须如下:

select a.name b.*from t_1,t_2 b where a.id>b.id;(不加join关键字)

5、自定义函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值