博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oozie分布式工作流——EL表达式
阅读量:6238 次
发布时间:2019-06-22

本文共 3344 字,大约阅读时间需要 11 分钟。

oozie支持使用EL(expression language)表达式。

基本的EL常量

  • KB
  • MB
  • GB
  • TB
  • PB

基本EL函数

string firstNotNull(String value1,String value2)

返回第一个不为空的值,如果都为null,则返回null

string concat(String s1,String s2)

拼接两个字符串,如果一个为null,拼接的字符串为空

string replaceAll(String src,String regex,String replacement)

替换正则表达式匹配的位置。如果regex为null,则什么也不做。如果replacement为null,则替换为空串

string appendAll(String src,String append,String delimeter)

把append字符串添加到切分后的字符串中。比如appendAll("a,b,c","123",",")将会返回a123,b123,c123。append为null代表返回空串,delimiter为null,代表什么也不做。

string trim(String s)

给指定的字符串去除空格

String urlEncode(String s)

URL解码

String timestamp()

返回当前的时间戳,并格式化为yyyy-MM-ddTHH:mmZ,到分钟粒度。

String toJsonStr(Map)

把Map返回成json,这在获取前一个action的输出内容时比较有用。比如wf:actionData(String actionName)格式化为json

String toPropertiesStr(Map)

把Map返回成Java Properties

String toConfigurationStr(Map)

把Map返回成Configuration

工作流EL函数

String wf:id()

获取当前工作流节点的id

String wf:name()

获取当前工作流的名称

String wf:appPath()

获取当前工作流workflow.xml所在的目录

String wf:conf(String name)

返回当前工作流的属性值

String wf:user()

返回启动当前工作流的用户

String wf:group()

返回当前工作流的组

String wf:callback(String stateVar)

返回当前工作流的回调,stateVar可以指定成某个状态,也可以传一个参数可以在远程进行替换

String wf:transition(String node)

返回工作流的状态

String wf:lastErrorNode()

返回当前工作流退出的状态

String wf:errorCode(String node)

返回特定node的错误代码

String wf:errorMessage(String message)

返回出错的主要信息

int wf:run()

返回当前工作流任务的标志,0代表正常

Map wf:actionData(String node)

返回指定节点输出的内容,需要配合<capture-output>标签使用

int wf:actionExternalId(String node)

返回节点的外部id

int wf:actionTrakerUri(String node)

返回当前节点的uri

int wf:actionExternalStatus(String node)

返回指定节点的外部状态

Hadoop EL常量

  • RECORDS
  • MAP_IN
  • MAP_OUT
  • REDUCE_IN
  • REDUCE_OUT
  • GROUPS

Hadoop 任务EL函数的例子

${jobTracker}
${nameNode}
mapred.job.queue.name
${queueName}
mapred.compress.map.output
true
INPUT=/user/${wf:user()}/${examplesRoot}/input-data/text
OUTPUT=/user/${wf:user()}/${examplesRoot}/output-data/pig
${jobTracker}
${nameNode}
mapred.job.queue.name
${queueName}
MyTest
${wf:actionData("pig-node")["hadoopJobs"]}
Pig failed, error message[${wf:errorMessage(wf:lastErrorNode())}]

hdfs el方法

boolean fs:exists(String path)

判断指定的URI是否存在

boolean fs:isDir(String path)

判断是否是目录

long fs:dirSize(String path)

返回指定目录下的所有文件的大小。如果不是目录,返回-1。它不支持嵌套,只能返回下面一层的文件大小

long fs:fileSize(String path)

返回指定文件的大小,如果不是文件,返回-1

long fs:blockSize(String path)

返回指定文件占用的block大小。如果不是file,返回-1

本文转自博客园xingoo的博客,原文链接:,如需转载请自行联系原博主。
你可能感兴趣的文章
OA系统失败之一技术缺陷
查看>>
售前工程师的成长---一个老员工的经验之谈(四)(转载)
查看>>
UIAlertView总结
查看>>
开源 java CMS - FreeCMS2.8 自定义标签 infoList
查看>>
jsp部署tomcat,集成MyEclipse
查看>>
关于symfony的serivce存在的意义
查看>>
1、SpringBoot+MybatisPlus整合
查看>>
面向sql编程
查看>>
Kubernetes之kubectl常用命令使用指南:2:故障排查
查看>>
Facebook测试新信息系统 陌生人发信收费1美元
查看>>
linux系统批量修改root用户密码
查看>>
使用python的paramiko包的RequirementParseError问题
查看>>
WdOS系统下源代码编译安装PHP(搭配nginx运行)
查看>>
SpringBoot整合Scala构建Web服务
查看>>
Gradle简介和安装
查看>>
使用Jmeter开发app端接口自动化案例实战
查看>>
[转载] 英语科技论文写作——Method and Methodology
查看>>
tomcat6+awstats+win7配置成功
查看>>
对前面的自定义的toast制作拖拽效果,以及双击居中效果
查看>>
php 文件目录操作
查看>>