笔者注:这里安装的版本为hive-0.13.1
1.基本操作
注:[]表示可选
1.创建数据库
create database [if not exists] db_hive ;
2.使用数据库
use db_hive ;
3.删除数据库
drop database [if exists] db_hive;
4.创建表
create table stu (id int ,name string)
row format delimited fields terminated by ',' ;
行格式化 用,分隔字段
5.查看所有的表
show tables ;
6.查看表信息
查看表结构
desc stu;
查看详细信息
desc extended stu ;
查看详细信息(格式化)
desc formatted stu;
7.从本地加载数据到表中
vi stu.txt 自己准备一下数据按,分隔就好
load data local inpath '/root/hive_datas/stu.txt' into table db_hive.stu ;
把文件映射到表中。
默认的数据库仓库路径/user/hive/warehouse,创建的数据库在它的下面,表当然在数据库下面啦,
文件加载到表的路径下面啦。把文件加载到表啦。
default数据库下直接创建stu表 位置也是在/user/hive/warehouse下面啦 有一个文件夹stu
更改默认位置 可以修改这个值:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
注意:养成好的习惯,在表名前面加上数据库的名字。
执行select 查询,当文件中字段和分隔符不能对应表中的数据和分隔符时,会出现null的情况,可以仔细检查一下,然后先删除truncate表的数据,再load导入一下,它默认是继续追加的。
8.查看自带的函数
show functions ;
查看一个函数的功能
desc function sum ;
查看一个函数的详细功能
desc function extended upper ;
应用:select id,upper(name) from stu;
9.HIVE日志文件配置
原来的日志文件
hive.log.threshold=ALL
hive.root.logger=WARN,DRFA
hive.log.dir=${java.io.tmpdir}/${user.name}
hive.log.file=hive.log
可以输出 echo ${java.io.tmpdir}
没有的话1.cd /tmp 2.然后cd 当前用户目录下 3.ll 会看到有一个hive.log的文件 4.tail -f hive.log 查看日志
修改日志文件(对应目录自己创建)
hive.log.threshold=ALL
hive.root.logger=WARN,DRFA
hive.log.dir=/opt/software/hive-0.13.1-cdh5.3.6/logs
hive.log.file=hive.log
再次启动的时候便可以看到日志文件的位置改变了。
10.set会话信息
exit;
退出之后设置的信息就失效了。仅仅在当前会话有效
查看当前所有的配置信息 set;
设置值 set key=value;
查看某个值 set key;
11.bin/hive -help 查看非交互式命令
设置logger运行的级别
bin/hive --hiveconf hive.root.logger = INFO,console;
查询
2.bin/hive -e "select ..."
执行一个sql文件。
3.bin/hive -f "/../../XXX.sql"
4.执行一个sql文件并重定向输出
bin/hive -f "/../../XXX.sql" > PATH
12.在hive-cli操作hdfs
hive (default)> dfs -rm -R /user/hive/warehouse/stu;
13.在hive-cli操作本地文件
hive (default)> ! ls /root/hive_datas ;
14.quit和exit的区别
在新版的oracle中没区别了,在以前的版本是有的:
exit:先隐性提交数据,再退出;
quit:不提交数据,退出;