Date 根据oozie中的日期创建输出文件
我正在使用oozie运行我的map reduce作业。我想根据日期创建输出文件。但它将日期作为字符串并最终打印,而不是将日期作为值:Date 根据oozie中的日期创建输出文件,date,hadoop,file-io,oozie,Date,Hadoop,File Io,Oozie,我正在使用oozie运行我的map reduce作业。我想根据日期创建输出文件。但它将日期作为字符串并最终打印,而不是将日期作为值: /user/skataria/geooutput/$(date +"%m%d%Y%H%M%S") 以下是oozie属性文件: nameNode=hdfs://localhost:8020 jobTracker=localhost:8021 date=(date +"%m%d%Y%H%M%S") oozie.wf.application.path=${nam
/user/skataria/geooutput/$(date +"%m%d%Y%H%M%S")
以下是oozie属性文件:
nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
date=(date +"%m%d%Y%H%M%S")
oozie.wf.application.path=${nameNode}/services/advert/sid
inputDir=${nameNode}/user/${user.name}/geoinput/testgeo
outputDir=${nameNode}/user/${user.name}/geooutput/${date}
不知何故,我无法将oozie作为标记,因为我的声誉低于1500看起来您试图在java属性文件中使用linux shell命令(
date+%m%d%Y%H%m%S)
),这无法解决
假设这是手动提交的工作流作业(与协调器作业相反)的一部分,一种解决方法是使用-D key=value选项从命令行提供date属性,并使用linux shell反引号内联解析命令的输出
oozie job -run -config job.properties -D date=`date +"%m%d%Y%H%M%S"`
您需要确保您的Oozie版本支持-D key=value选项是的,我同意shell选项有效。但这并不能解决我的用例。我想每天运行我的map reduce作业,并计划通过色调。输出目录需要参数化为Oozie的作业属性 顺便说一下,我发现 不幸的是,函数
timestamp()
将W3C格式的UTC当前日期和时间返回到第二个(YYYY-MM-DDThh:MM:ss.sZ)
。i、 e.:1997-07-16T19:20:30.45Z
并且完全不可用于在HDFS中创建子目录名
所以现在,
我有个变通办法。我正在使用工作流EL函数wf:id()
在workflow.xml中
<property>
<name>mapreduce.output.fileoutputformat.outputdir</name>
<value>/user/sasubramanian/impressions/output/outpdir/${yyyy_mm_dd}/${wf:id()}</value>
</property>
注意:必须在workflow.xml中指定此选项。如果您在作业中指定了此选项,则此选项无效。属性肯定会尝试此选项。谢谢!
/user/foouser/subdir1/output/outpdir/0000006-130321100837625-oozie-oozi-W