1. Hive入门
hive中数据库和表都是目录,默认在hdfs的/user/hive/warehouse/下
在元数据库mysql中
2.简单操作
Hive表分为两类,外部表和管理表(或叫内部表)
区别:删除表结构时(drop table tableName),外部表数据保留,内部表数据也被删除
因为大数据开发,数据量很大,删除数据是很危险的操作,建议一般使用外部表
创建一张表,没做额外任何添加,默认TBL_TYPE=MANAGED_TABLE(管理表)
查看表结构
desc formatted tb1;
desc tb1;
添加一条记录,执行很慢,会走MapReduce过程
一般使用load
--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
create table tb1(id int,name string) row format delimited fields terminated by ','
load data local inpath '/home/omc/students.txt' into table tb1;
相当于将本地文件students.txt上传到hdfs的hive仓库中
等价于下面的操作
--------------------------------------------------------------------------------------------------------------------------------
将students.txt上传到hdfs中
load data inpath '/wc/students.txt' into table tb1;
想当于把hdfs文件转移到数据仓库中
--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
在hdfs上查看结果
此处结果文件有10个字符长度,其中默认分隔符(\001)占了两个
删除表后,hdfs上的数据也被删除
在hive中,可以直接查看hdfs上的信息(速度还要快点)
3.Hive使用方式
3.1 Hive交互式Shell
bin/hive
3.2 Hive Thrift服务
服务端:
把hive做为服务器来启动,其他客户端只要符合他的协议就可以远程连接hive
默认端口是10000
bin/hiveserver2
查看是否启动成功
netstat -anop | grep 10000
客户端:
hive里有个客户端(可以另外开一个窗口做为客户端)
bin/beeline
连接到服务端:!connect jdbc://hive2://192.168.0.131:10000