Pregunta

Estoy usando oozie para ejecutar mis reducir el mapa de trabajo.Quiero crear el archivo de salida de acuerdo a la fecha.Pero se necesita la fecha como una cadena y termina impresión, en lugar de tomar como fecha el valor :

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

Aquí está el oozie archivo de propiedades:

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}

De alguna manera, de los que no puedo tener oozie como etiqueta debido a mi reputación es menor de 1500

¿Fue útil?

Solución

Parece que está tratando de usar un comando de shell de Linux (date +"%m%d%Y%H%M%S") en un archivo de propiedades de Java, esto no va a resolver.

Uno de trabajo, asumiendo que esto es parte de un trabajo de flujo de trabajo enviado manualmente (a diferencia de un trabajo de coordinador) es proporcionar la propiedad de la fecha en la línea de comandos usando la opción -d KEY= QUAL OPCIÓN, y Linux Shell Back Cotes paraResuelva la salida de un comando en línea

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

Deberá asegurarse de que su versión de OOZIE sea compatible con la opción -d tecla= valor

Otros consejos

Sí estoy de acuerdo con la shell opción funciona.Pero eso no resuelve mi caso de uso.Quiero correr mi mapa-reducir el trabajo diario y horario través de este Tono.El directorio de salida debe ser parametrizado como una propiedad del trabajo a Oozie.

Por el camino me encuentro con que Oozie tiene la Expresión de las Funciones del lenguaje,

Desgraciadamente, la función timestamp() devuelve el UTC fecha y hora actuales en formato W3C hasta el segundo (YYYY-MM-DDThh:mm:ss.sZ).es decir: 1997-07-16T19:20:30.45Z y completamente inútil para la creación de un sub-directorio de nombre en HDFS

Así que, por ahora,

Tengo una solución.Estoy usando el Flujo de trabajo de EL Función wf:id() En workflow.xml

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

Esto crea un directorio de salida con subdirectorio como,

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

NOTA:Debe especificar esto en el workflow.xml.Esto no funcionará si se especifica en el trabajo.propiedades

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top