shell命令执行hive脚本
Hive的hql命令的四种执行方式
- CLI 方式直接执行
- 作为字符串通过shell调用
hive –e
执行 - 通过shell调用
hive –f
或hive –i
执行执行 - 作为独立文件,通过shell调用
hplsql -f
方式一:CLI 方式直接执行
在终端直接输入
hive
进入CLI (客户端)然后直接执行了例如:
1
2
3create database test; -- 创建数据库test
use test; -- 使用test数据库
exit; -- 退出客户端
方式二:作为字符串通过shell调用hive –e执行
编写脚本
test.sh
写入内容
查找
test
库中的student
表的所有内容1
2#!/bin/bash
hive -e "select * from test.student"加上可执行权限
1
chmod +x test.sh
运行./test.sh (也可以用绝对路径)
不加可执行权限可以用
bash test.sh
命令运行
方式三:通过shell调用 hive –f或hive –i执行执行
hive -f
通常用于执行包含 Hive 查询语句的脚本文件,而 hive -i
可能用于在启动 Hive 会话之前执行一些初始化脚本。
将hql语句写入文件(将hql语句保存为独立文件,后缀名不限制,可以用.q或者.hql作为标识:)
hive -f
执行文件1
hive -f mytest.hql
执行结果
这个文件在cli模式下,用source命令执行,如:source ./mytest.hql
方式四:通过shell调用hplsql -f
示例代码放入文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-- 创建存储过程 set_message,接受一个输入参数 arg
CREATE PROCEDURE set_message(IN arg STRING)
BEGIN
-- 在存储过程内部设置一个变量 result,包含固定的欢迎消息
SET result = 'Hello, leaf-domain的大数据田地!';
-- 打印输入参数 arg
PRINT arg;
-- 打印组合的消息,包括存储过程内部变量 result 和输入参数 arg
PRINT result || ', ' || arg;
END;
-- 打印初始欢迎消息
PRINT 'Hello, leaf-domain! at beginning .. ';
-- 调用存储过程 set_message,传递参数 ' by CALL ..'
CALL set_message(' by CALL ..');执行
1
hplsql -f xxx.hql
执行结果
shell命令执行hive脚本
https://leaf-domain.gitee.io/2024/01/21/bigdata/hive/hive-sql/