前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oozie action参数传递

oozie action参数传递

作者头像
用户1171305
发布2019-07-02 10:12:56
1.9K0
发布2019-07-02 10:12:56
举报
文章被收录于专栏:成长道路

1.shell节点参数传递

第一步:在shell节点编辑器中将想要传递的变量输出:

# !/bin/bash

test='test123'

echo "test:$test"

第二步:节点高级属性中勾选捕获输出:

第三步:其他节点获取想要的变量:

${wf:actionData(nodeName).variableName}

nodeName:想要获取输出变量的节点名称

variableName:想要获取的变量名称

2.java节点参数传递

第一步:上传的jar包中想要输出的变量抛出

try {

File file = new File(System.getProperty("oozie.action.output.properties"));

Properties props = new Properties();

props.setProperty(propKey0, propVal0);//变量以key、value形式输出

props.setProperty(propKey1, propVal1);

OutputStream os;

os = new FileOutputStream(file);

props.store(os, "");

os.close();

} catch (Exception e) {

e.printStackTrace();

}

第二步:节点高级属性中勾选捕获输出:

第三步:其他节点获取想要的变量同上

3.rdms节点参数传递

第一步:在rdms节点编辑器中将想要传递的变量输出:

#@output(maxID=max,minID=min)

select max(id) as max,min(id) as min from desktop_document2 limit ${limit}

@output():固定注解,捕获输出,代码遇到这个会处理

括号里面如果有多个输出变量用逗号输出

maxID:输出的变量名称

max:执行sql语句获得结果的别名

第二步:其他节点的获取

${wf:actionData('test').minID}

4.hive节点参数传递

原生oozie并不支持hive节点的捕获参数,可以通过shell节点执行hive sql,然后将需要传递的参数输出。

第一步:在shell的编辑器中编写:

# !/bin/bash

hive_test_count=`hive -e "select max(id) from griffin.demo_src"`

echo "hive_test_count=$hive_test_count"

第二步:其他节点的获取变量:

${wf:actionData('gas').hive_test_count}

5.sparksql节点参数的传递,oozie源码不支持spark类型的参数传递,通过shell的方式执行spark-sql,由于cdh目前不支持这个命令,所以也行不通。

sparksql和hive其实执行的都是对hive的操作,结果都是一样的,可以也像hive一样通过shell调用。

附:关于获取变量填写的示例:主要是以下几种,其他节点按照对应方式填写即可。

rdms节点:

Shell节点:

hive节点:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档