0

Ich verbringe einen Tag damit herauszufinden, warum mein Koordinator nicht wie erwartet funktioniert und immer noch keine Ahnung hat.Wie bekomme ich eine bestimmte Stunde für einen stündlich geplanten Funkenjob mit dem Funkenkoordinator?

Ich möchte 2 Funken Jobs laufen mit dem zweiten Job ist abhängig von der ersten Job. Ich habe den ersten Job abgeschlossen, um stündlich _SUCCESS Datei zu produzieren. Das Problem ist, wenn der zweite Job seine Abhängigkeit findet, hat er das falsche HOUR bekommen. Es nimmt immer 00 statt der Stunde zur Ausführungszeit ab.

hier ist Probe des xml Teil für den zweiten Job Abhängigkeit

<datasets> 
<dataset name="\first_job" frequency="${coord:days(1)}" initial-instance="2015-01-01T00:00Z" timezone="GMT"> 
    <uri-template>hdfs://nameservice1/user/user/project/first_job/success/${YEAR}${MONTH}${DAY}/${HOUR}</uri-template> 
    <done-flag>_SUCCESS</done-flag> 
</dataset> 

und hier ist etwas log

::CoordActionInputCheck:: Missing deps:hdfs://nameservice1/user/user/project/first_job/success/20171222/00/_SUCCESS 

bitte teilen Sie mir für das, was ich falsch mache oder was ich verpasst habe.

Dank

Antwort

0

Sie die Frequenz auf frequency="${coord:days(1)}" gesetzt haben, es bedeutet, dass Ihr Oozie Koordinator bei 00 Stunden nur einmal auszulösen Job braucht, das ist, warum es immer für die Start Stunde des Tages suchen, die von 00 Stunden ist Ihre erste Instanz. Verwenden Sie die hours EL Funktion

frequency="${coord:hours(1)}" 

co ordinator anweisen, für jede Stunde zu überprüfen.

Auch der initial-instance-Satz ist initial-instance="2015-01-01T00:00Z" und die Häufigkeit ist 1 Tag, so wird es um 1 Tag erhöht, aber die Stunden werden gleich sein 00:00Z. Ändern Sie diese Zeit, um bestimmte Stunden auszuwählen.

Verwandte Themen