Skip to content

Instantly share code, notes, and snippets.

@fouziam08
Last active February 11, 2022 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fouziam08/22288b7e6466ae8e8715160faac558fb to your computer and use it in GitHub Desktop.
Save fouziam08/22288b7e6466ae8e8715160faac558fb to your computer and use it in GitHub Desktop.
Introducing Arbiter
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<workflow-app xmlns="uri:oozie:workflow:0.2" name="email-rollups">
<start to="fork-2"/>
<fork name="fork-2">
<path start="fork-0"/>
<path start="transactional_lifecycle_email_stats"/>
</fork>
<action name="transactional_lifecycle_email_stats">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>rollups</value>
</property>
</configuration>
<main-class>com.etsy.db.VerticaRollupRunner</main-class>
<arg>--file</arg>
<arg>transactional_lifecycle_email_stats.sql</arg>
<arg>--frequency</arg>
<arg>daily</arg>
<arg>--category</arg>
<arg>regular</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="join-2"/>
<error to="join-2"/>
</action>
<join name="join-2" to="screamapillar"/>
<action name="screamapillar">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>${queueName}</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
</configuration>
<main-class>com.etsy.oozie.Screamapillar</main-class>
<arg>--workflow-id</arg>
<arg>${wf:id()}</arg>
<arg>--recipient</arg>
<arg>fake_email</arg>
<arg>--sender</arg>
<arg>fake_email</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="end"/>
<error to="kill"/>
</action>
<fork name="fork-0">
<path start="email_campaign_stats"/>
<path start="user_language"/>
</fork>
<action name="user_language">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>rollups</value>
</property>
</configuration>
<main-class>com.etsy.db.VerticaRollupRunner</main-class>
<arg>--file</arg>
<arg>user_language.sql</arg>
<arg>--frequency</arg>
<arg>daily</arg>
<arg>--category</arg>
<arg>regular</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="join-0"/>
<error to="join-0"/>
</action>
<join name="join-0" to="fork-1"/>
<fork name="fork-1">
<path start="email_overview"/>
<path start="trans_email_overview"/>
</fork>
<action name="trans_email_overview">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>rollups</value>
</property>
</configuration>
<main-class>com.etsy.db.VerticaRollupRunner</main-class>
<arg>--file</arg>
<arg>trans_email_overview.sql</arg>
<arg>--frequency</arg>
<arg>daily</arg>
<arg>--category</arg>
<arg>regular</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="join-1"/>
<error to="join-1"/>
</action>
<join name="join-1" to="join-2"/>
<action name="email_overview">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>rollups</value>
</property>
</configuration>
<main-class>com.etsy.db.VerticaRollupRunner</main-class>
<arg>--file</arg>
<arg>zz_email_overview.sql</arg>
<arg>--frequency</arg>
<arg>daily</arg>
<arg>--category</arg>
<arg>regular</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="join-1"/>
<error to="join-1"/>
</action>
<action name="email_campaign_stats">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>rollups</value>
</property>
</configuration>
<main-class>com.etsy.db.VerticaRollupRunner</main-class>
<arg>--file</arg>
<arg>zz_email_campaign_stats.sql</arg>
<arg>--frequency</arg>
<arg>daily</arg>
<arg>--category</arg>
<arg>regular</arg>
<arg>--env</arg>
<arg>${cluster_env}</arg>
</java>
<ok to="join-0"/>
<error to="join-0"/>
</action>
<kill name="kill">
<message>Workflow email-rollups has failed with msg: [${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment