shell命令执行hive脚本

shell命令执行hive脚本-CSDN博客

Hive的hql命令的四种执行方式

  1. CLI 方式直接执行
  2. 作为字符串通过shell调用hive –e执行
  3. 通过shell调用 hive –fhive –i执行执行
  4. 作为独立文件,通过shell调用hplsql -f

方式一:CLI 方式直接执行

  1. 在终端直接输入hive进入CLI (客户端)

  2. 然后直接执行了例如:

    1
    2
    3
    create database test;  	-- 创建数据库test
    use test; -- 使用test数据库
    exit; -- 退出客户端

ina

方式二:作为字符串通过shell调用hive –e执行

  1. 编写脚本test.sh

  2. 写入内容

    查找test库中的student表的所有内容

    1
    2
    #!/bin/bash
    hive -e "select * from test.student"
  3. 加上可执行权限

    1
    chmod +x test.sh
  4. 运行./test.sh (也可以用绝对路径)

    不加可执行权限可以用 bash test.sh 命令运行

ina

方式三:通过shell调用 hive –f或hive –i执行执行

hive -f 通常用于执行包含 Hive 查询语句的脚本文件,而 hive -i 可能用于在启动 Hive 会话之前执行一些初始化脚本。

  1. 将hql语句写入文件(将hql语句保存为独立文件,后缀名不限制,可以用.q或者.hql作为标识:)

    image-20240122085929481

  2. hive -f执行文件

    1
    hive -f mytest.hql
  3. 执行结果

    image2

  4. 这个文件在cli模式下,用source命令执行,如:source ./mytest.hql

方式四:通过shell调用hplsql -f

  1. 示例代码放入文件

    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 ..');
  2. 执行

    1
    hplsql -f xxx.hql
  3. 执行结果

    image

参考: hive之hplsql学习_hpl/sql使用文档-CSDN博客


shell命令执行hive脚本
https://leaf-domain.gitee.io/2024/01/21/hive-sql/
作者
叶域
发布于
2024年1月21日
许可协议