2012-02-24 5 views
1

map-reduce 작업을 실행하는 데 oozie를 사용하고 있습니다. 나는 날짜에 따라 출력 파일을 만들고 싶다. oozie 특성 파일 여기oozie에서 날짜 별 출력 파일 생성

/user/skataria/geooutput/$(date +"%m%d%Y%H%M%S") 

됩니다 : :하지만 문자열로 날짜를 취하고 대신 값으로 날짜를 복용 인쇄를 끝

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 미만입니다.

답변

3

자바 속성 파일에서 리눅스 쉘 명령 (date +"%m%d%Y%H%M%S")을 사용하려는 것 같습니다. 해결되지 않습니다.

수동으로 제출 된 워크 플로우 작업 (코디네이터 작업과 반대되는 작업)의 일부인 경우, -D key = value 옵션을 사용하여 명령 줄에서 date 속성을 제공하고, Linux 쉘 역 인용 부호 명령 인라인 당신은 Oozie의 버전이

+0

확실히 시도해 보겠습니다. 감사합니다. – RFT

0

예 내가 쉘 옵션의 작품을 동의 -D 키 = 값 옵션을 지원 확인해야합니다

oozie job -run -config job.properties -D date=`date +"%m%d%Y%H%M%S"` 

의 출력을 해결합니다. 하지만 그건 내 유스 케이스를 해결하지 못해. 지도 감면 작업을 매일 실행하고 색조를 통해 일정을 조정하고 싶습니다. 출력 디렉토리는 작업 속성으로 Oozie에 매개 변수화해야합니다. 내가 찾아 그런데

Oozie has Expression language Functions, 두 번째 (YYYY-MM-DDThh:mm:ss.sZ)까지 W3C 형식으로 UTC 현재 날짜와 시간을 반환 timestamp()

불행하게도 기능. 즉 : 1997-07-16T19:20:30.45Z 및 HDFS

에서 지금은 그래서

,

을 하위 디렉토리 이름을 만들기위한 완전히 사용할 수 없게 나는 해결 방법을 가지고있다. 나는 workflow.xml

<property> 
    <name>mapreduce.output.fileoutputformat.outputdir</name> 
    <value>/user/sasubramanian/impressions/output/outpdir/${yyyy_mm_dd}/${wf:id()}</value> 
</property> 

이 같은 하위 디렉토리와 출력 디렉토리를 생성에서

/user/foouser/subdir1/output/outpdir/0000006-130321100837625-oozie-oozi-W 

참고 워크 플로 EL 기능 wf:id() 을 사용하고 있습니다 : 당신은 workflow.xml이를 지정해야합니다. job.properties에서 지정한 경우 작동하지 않습니다.