Je dois créer une fonction EL personnalisée et l'utiliser dans uri-template (un équivalent de YEAR, MONTH). C'est possible? Quelle est la configuration clé à mettre en oozie-site.xml
pour cette zone de coordinateur?Oozie Coordinator - fonctions EL personnalisées
Répondre
La propriété oozie.service.ELService.ext.functions.workflow
est celle dans laquelle vous devez inclure toutes les cartes de la fonction EL étendue dans la classe et la méthode associées. Les entrées de carte multiples sont séparées par des virgules.
<property>
<name>oozie.service.ELService.ext.functions.workflow</name>
<value>
yourELkey=fully_quallified_class_name#static_method_name
</value>
<description>
EL functions declarations, separated by commas, format is
[PREFIX:]NAME=CLASS#METHOD. This property is a convenience
property to add extensions to the built in executors without
having to include all the built in ones.
</description>
</property>
Pour plus d'information sur la façon de conditionner et de déployer vous pouvez vous référer à this.
EDIT: Puisque vous êtes intéressé par les fonctions EL pour un coordinateur similaire à YEAR, MONTH, vous pouvez jeter un oeil à la propriété ci-dessous (documentée dans oozie-default.xml et vous devrez l'ajouter à oozie-site. xml comme ancien est seulement la documentation) - oozie.service.ELService.functions.coord-job-submit-freq
et oozie.service.ELService.ext.functions.coord-job-submit-freq
.
<property>
<name>oozie.service.ELService.functions.coord-job-submit-freq</name>
<value>
coord:days=org.apache.oozie.coord.CoordELFunctions#ph1_coord_days,
coord:months=org.apache.oozie.coord.CoordELFunctions#ph1_coord_months,
coord:hours=org.apache.oozie.coord.CoordELFunctions#ph1_coord_hours,
coord:minutes=org.apache.oozie.coord.CoordELFunctions#ph1_coord_minutes,
coord:endOfDays=org.apache.oozie.coord.CoordELFunctions#ph1_coord_endOfDays,
coord:endOfMonths=org.apache.oozie.coord.CoordELFunctions#ph1_coord_endOfMonths,
coord:conf=org.apache.oozie.coord.CoordELFunctions#coord_conf,
coord:user=org.apache.oozie.coord.CoordELFunctions#coord_user,
hadoop:conf=org.apache.oozie.action.hadoop.HadoopELFunctions#hadoop_conf
</value>
<description>
EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
</description>
</property>
<property>
<name>oozie.service.ELService.ext.functions.coord-job-submit-freq</name>
<value>
</value>
<description>
EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
This property is a convenience property to add extensions to the built in executors without having to
include all the built in ones.
</description>
</property>
Merci @Shailendra! J'ai déjà lu le tutoriel, et j'ai pu utiliser la fonction personnalisée dans un flux de travail, mais à l'intérieur d'un coordinateur, cela ne fonctionne pas. Je pense que la propriété 'oozie.service.ELService.ext.functions.workflow' peut être utilisée uniquement dans les workflows – Sandro
Oh je vois - s'il vous plaît voir mes modifications. – Shailendra
@Shailendra s'il vous plaît voir aussi cette question https://stackoverflow.com/questions/47622084/oozie-custom-el-function-oozie-for-coordinator – aibotnet
Bienvenue à SO! Afin de tirer le meilleur parti de votre question, veuillez fournir autant de détails que possible. Dans ce cas, ajoutez s'il vous plaît le workflow.xml et le coordinator.xml et un peu plus de l'erreur que vous avez mise à jour – Mzf
Bonjour @Mzf, merci pour votre réponse. J'ai reformulé ma qyestion – Sandro