前言
今天开始学习 Hive,因为毕竟但凡做个项目基本就避不开用 Hive ,争取这学期结束前做个小点的项目。
第一篇博客内容还是比较少的,环境的搭建配置太琐碎没有写。
Hive 常用使用技巧
交互式使用
就是我们正常的进入 hive 命令行下的使用模式。
非交互式使用
所谓非交互式,也就是不需要进入 hive 命令行,直接在我们 linux Shell 命令行中执行。
hive -e
bash
# 一段带字符串的 SQL
-e <quoted-query-string> SQL from command line
案例:
bash
[lyh@hadoop102 hive-3.1.2]$ hive -e "insert into stu values(2,'lyh')"
hive -f
bash
# 执行文件中的所有 SQL
-f <filename> SQL from filename
案例:
将要执行的sql写入一个文件:
bash
vim stu.sql
#写如以下sql 用分号隔开
insert into stu values(3,"ls");
select * from stu;
执行:
bash
[lyh@hadoop102 ~]$ hive -f stu.sql
Hive 参数配置方式
(1)查看当前所有的配置信息
bash
hive> set;
(2)查看某个参数的配置信息
bash
# 查看reduce开启的数量
hive(default)>set mapreduce.job.reduces;
(3)设置参数
1. hive-site.xml
这种设置参数的方式全局永久生效。
2. 命令行参数
启动 Hive 时,可以在命令行添加 -hiveconf param=value 的方式来设置参数。
这种设置参数的方式全局仅对本次 Hive 启动生效。
bash
# 设置一个作业中reduce开启的数量
[lyh@hadoop102 hive-3.1.2]$ hive -hiveconf mapreduce.job.reduces=10;
3.参数声明方式
可以在 HQL 中使用 SET 关键字来设定参数:
bash
hive(default)> set mapreduce.job.reduces=10;
同样,仅对本次Hive 启动生效。
查看参数设置:
bash
hive(default)> set mapreduce.job.reduces;
总结
上面三种参数设置方式的优先级为 hive-site.xml < 命令行参数 < 参数声明 。除了某些系统级的参数,比如 log4j 相关的设置,必须使用前两种设置方式,因为那些参数的读取已经在会话建立前已经完成了。