2017-10-06 17 views
2

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

+0

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

+0

Bonjour @Mzf, merci pour votre réponse. J'ai reformulé ma qyestion – Sandro

Répondre

0

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> 
+0

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

+0

Oh je vois - s'il vous plaît voir mes modifications. – Shailendra

+0

@Shailendra s'il vous plaît voir aussi cette question https://stackoverflow.com/questions/47622084/oozie-custom-el-function-oozie-for-coordinator – aibotnet