Workflow(< TDS 2.x)中使用 beeline 调度SQL任务

  使用配置
内容纲要

概要描述

本文主要描述如何在 Workflow 中调度 beeline 执行 SQL 任务。适用的 Workflow 版本为 TDH 5.x 、TDH 6.x 及 Studio 1.x 。不适用于 TDS 2.x 及以上。

详细说明

使用场景

在 Workflow 的 SQL 任务算子无法满足 SQL 任务的要求(常见的情况有因 SQL 语句长度太长导致无法保存工作流等)时,可以考虑使用 beeline 脚本任务的形式执行SQL。

操作步骤

在所有 Workflow 节点的共享目录中部署 TDH Client

在 Manager 页面,点击 管理 > 下载客户端,下载 tdh-client.tar 客户端。

然后放置在所有 Workflow Server 节点的/etc/workflow{服务编号}/conf目录下。

file

解压客户端文件。

tar xvf tdh-client.tar

如果 Workflow 部署在了多个节点,则每个节点都需要放置和解压。

放置 SQL 脚本文件并测试

将想执行的 SQL 放到文件中,并放置在所有 Workflow Server 节点的/etc/workflow{服务编号}/conf目录下,例如文件名为test_sql.sql

file

如果 Workflow 部署在了多个节点,则每个节点都需要放置。

执行以下命令测试 SQL 能否执行。

source TDH-Client/init.sh

beeline -u jdbc:hive2://{Inceptor Server IP}:10000/{Database Name} -n {username} -p {password} -f {SQL file name}

需要根据实际情况修改第二句命令中的参数值,如果没有异常则应能正常执行完毕。

file

如果执行有报错,则需要先将脚本调通,否则也无法在 Workflow 中调度执行。

在任务流中添加脚本任务

创建一个新的任务流,左侧添加一个脚本任务。

file

脚本内容如下:

cd /etc/workflow{服务编号}/conf

source TDH-Client/init.sh

/etc/workflow1/conf/TDH-Client/inceptor/bin/beeline -u jdbc:hive2://{Inceptor Server IP}:10000/{Database Name} -n {username} -p {password} -f {SQL file name}

需要根据实际情况修改命令中的参数值。

file

保存。再点击调试模式 > 执行工作流进行测试。

file

正常调试通过后,就可以设置调度周期发布调度了。

FAQ

  • 在 Workflow 节点后台执行成功,但在 Workflow 任务流中调试或调度报错:
Missing Hive Execution Jar: /etc/workflow1/conf/TDH-Client/inceptor/lib/hive-exec-*.jar

这种情况需要在任务流的脚本设置中,将脚本内容中的 beeline 命令修改成绝对路径。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。