You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@oozie.apache.org by Mohammad Tariq <do...@gmail.com> on 2014/09/10 02:55:33 UTC

Fetching workflow parameter values through the API

Hello list,

I have written an auditing service which periodically captures some
predefined metrics for our daily workflows and stores them into HBase for
further analyses. I am using Java API for this and till now the processes
was quite smooth(courtesy awesome oozie API).

Now we have decided to capture few more things like *parameters* passed to
a particular workflow, *number of records* affected
*(inserted/deleted/updated)* during the course of execution etc. I would
like to ask you guys if there is any API which supports these things. I
tried looking at the API docs, but couldn't find one.

I would really appreciate if someone could point me towards the right
direction. Thank you so much for your precious time.

[image: http://]
Tariq, Mohammad
about.me/mti
[image: http://]
<http://about.me/mti>

Re: Fetching workflow parameter values through the API

Posted by Shwetha GS <sh...@inmobi.com>.
Which oozie version are you using?

On Fri, Sep 12, 2014 at 12:15 PM, Mohammad Tariq <do...@gmail.com> wrote:

> Hi Shwetha,
>
> I was trying the same thing, but it wasn't working. However, using the
> getConf() with individual actions is working fine.
>
> Something like this :
>
> actions = client.getJobInfo(j.getId()).getActions();
>
> System.out.println("Number of actions in this workflow : " + actions.size()
> + "\n");
>
>             for (WorkflowAction a : actions) {
>
>
>                          System.out.println("Action name : " +
> a.getName());
>
>                          System.out.println("Action Configuration : " +
> a.getConf());
>
>                          ...........
>
>                  }
>
>    }
>
> Thanks again for the help. I appreciate it.
>
>
> [image: http://]
> Tariq, Mohammad
> about.me/mti
> [image: http://]
> <http://about.me/mti>
>
>
> On Fri, Sep 12, 2014 at 11:22 AM, Shwetha GS <sh...@inmobi.com>
> wrote:
>
> > The following code does give the workflow parameters:
> >         OozieClient client = new OozieClient("<oozie endpoint>");
> >         WorkflowJob info =
> > client.getJobInfo("0408617-140814092104959-oozie-oozi-W");
> >         System.out.println(info.getConf());
> >
> > prints the conf as:
> > <configuration>
> >   <property>
> >     <name>oozie.coord.application.path</name>
> >     <value>some app path</value>
> >   </property>
> > ...
> > </configuration>
> >
> > I don't see any cases where the conf is not returned
> >
> >
> >
> >
> > On Thu, Sep 11, 2014 at 5:26 PM, Mohammad Tariq <do...@gmail.com>
> > wrote:
> >
> > > Hi Shwetha,
> > >
> > > Thank you for the reply. I actually tried getConf(), but it didn't
> return
> > > anything. Are there any corner case wherein the parameters passed to a
> > > particular workflow don't turn up if I call WorkflowJob.getConf()??
> > >
> > >
> > > [image: http://]
> > > Tariq, Mohammad
> > > about.me/mti
> > > [image: http://]
> > > <http://about.me/mti>
> > >
> > >
> > > On Wed, Sep 10, 2014 at 3:57 PM, Shwetha GS <sh...@inmobi.com>
> > wrote:
> > >
> > > > getJobInfo(String jobId) returns WorkflowJob and
> WorkflowJob.getConf()
> > > has
> > > > the properties that are passed to the workflow. You can get the
> hadoop
> > > job
> > > > id from WorkflowJob.getActions() and then get the job
> metrics(#records
> > > etc)
> > > > from hadoop
> > > >
> > > > -Shwetha
> > > >
> > > > On Wed, Sep 10, 2014 at 6:25 AM, Mohammad Tariq <do...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hello list,
> > > > >
> > > > > I have written an auditing service which periodically captures some
> > > > > predefined metrics for our daily workflows and stores them into
> HBase
> > > for
> > > > > further analyses. I am using Java API for this and till now the
> > > processes
> > > > > was quite smooth(courtesy awesome oozie API).
> > > > >
> > > > > Now we have decided to capture few more things like *parameters*
> > passed
> > > > to
> > > > > a particular workflow, *number of records* affected
> > > > > *(inserted/deleted/updated)* during the course of execution etc. I
> > > would
> > > > > like to ask you guys if there is any API which supports these
> > things. I
> > > > > tried looking at the API docs, but couldn't find one.
> > > > >
> > > > > I would really appreciate if someone could point me towards the
> right
> > > > > direction. Thank you so much for your precious time.
> > > > >
> > > > > [image: http://]
> > > > > Tariq, Mohammad
> > > > > about.me/mti
> > > > > [image: http://]
> > > > > <http://about.me/mti>
> > > > >
> > > >
> > > > --
> > > > _____________________________________________________________
> > > > The information contained in this communication is intended solely
> for
> > > the
> > > > use of the individual or entity to whom it is addressed and others
> > > > authorized to receive it. It may contain confidential or legally
> > > privileged
> > > > information. If you are not the intended recipient you are hereby
> > > notified
> > > > that any disclosure, copying, distribution or taking any action in
> > > reliance
> > > > on the contents of this information is strictly prohibited and may be
> > > > unlawful. If you have received this communication in error, please
> > notify
> > > > us immediately by responding to this email and then delete it from
> your
> > > > system. The firm is neither liable for the proper and complete
> > > transmission
> > > > of the information contained in this communication nor for any delay
> in
> > > its
> > > > receipt.
> > > >
> > >
> >
> > --
> > _____________________________________________________________
> > The information contained in this communication is intended solely for
> the
> > use of the individual or entity to whom it is addressed and others
> > authorized to receive it. It may contain confidential or legally
> privileged
> > information. If you are not the intended recipient you are hereby
> notified
> > that any disclosure, copying, distribution or taking any action in
> reliance
> > on the contents of this information is strictly prohibited and may be
> > unlawful. If you have received this communication in error, please notify
> > us immediately by responding to this email and then delete it from your
> > system. The firm is neither liable for the proper and complete
> transmission
> > of the information contained in this communication nor for any delay in
> its
> > receipt.
> >
>

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.

Re: Fetching workflow parameter values through the API

Posted by Mohammad Tariq <do...@gmail.com>.
Hi Shwetha,

I was trying the same thing, but it wasn't working. However, using the
getConf() with individual actions is working fine.

Something like this :

actions = client.getJobInfo(j.getId()).getActions();

System.out.println("Number of actions in this workflow : " + actions.size()
+ "\n");

            for (WorkflowAction a : actions) {


                         System.out.println("Action name : " + a.getName());

                         System.out.println("Action Configuration : " +
a.getConf());

                         ...........

                 }

   }

Thanks again for the help. I appreciate it.


[image: http://]
Tariq, Mohammad
about.me/mti
[image: http://]
<http://about.me/mti>


On Fri, Sep 12, 2014 at 11:22 AM, Shwetha GS <sh...@inmobi.com> wrote:

> The following code does give the workflow parameters:
>         OozieClient client = new OozieClient("<oozie endpoint>");
>         WorkflowJob info =
> client.getJobInfo("0408617-140814092104959-oozie-oozi-W");
>         System.out.println(info.getConf());
>
> prints the conf as:
> <configuration>
>   <property>
>     <name>oozie.coord.application.path</name>
>     <value>some app path</value>
>   </property>
> ...
> </configuration>
>
> I don't see any cases where the conf is not returned
>
>
>
>
> On Thu, Sep 11, 2014 at 5:26 PM, Mohammad Tariq <do...@gmail.com>
> wrote:
>
> > Hi Shwetha,
> >
> > Thank you for the reply. I actually tried getConf(), but it didn't return
> > anything. Are there any corner case wherein the parameters passed to a
> > particular workflow don't turn up if I call WorkflowJob.getConf()??
> >
> >
> > [image: http://]
> > Tariq, Mohammad
> > about.me/mti
> > [image: http://]
> > <http://about.me/mti>
> >
> >
> > On Wed, Sep 10, 2014 at 3:57 PM, Shwetha GS <sh...@inmobi.com>
> wrote:
> >
> > > getJobInfo(String jobId) returns WorkflowJob and WorkflowJob.getConf()
> > has
> > > the properties that are passed to the workflow. You can get the hadoop
> > job
> > > id from WorkflowJob.getActions() and then get the job metrics(#records
> > etc)
> > > from hadoop
> > >
> > > -Shwetha
> > >
> > > On Wed, Sep 10, 2014 at 6:25 AM, Mohammad Tariq <do...@gmail.com>
> > > wrote:
> > >
> > > > Hello list,
> > > >
> > > > I have written an auditing service which periodically captures some
> > > > predefined metrics for our daily workflows and stores them into HBase
> > for
> > > > further analyses. I am using Java API for this and till now the
> > processes
> > > > was quite smooth(courtesy awesome oozie API).
> > > >
> > > > Now we have decided to capture few more things like *parameters*
> passed
> > > to
> > > > a particular workflow, *number of records* affected
> > > > *(inserted/deleted/updated)* during the course of execution etc. I
> > would
> > > > like to ask you guys if there is any API which supports these
> things. I
> > > > tried looking at the API docs, but couldn't find one.
> > > >
> > > > I would really appreciate if someone could point me towards the right
> > > > direction. Thank you so much for your precious time.
> > > >
> > > > [image: http://]
> > > > Tariq, Mohammad
> > > > about.me/mti
> > > > [image: http://]
> > > > <http://about.me/mti>
> > > >
> > >
> > > --
> > > _____________________________________________________________
> > > The information contained in this communication is intended solely for
> > the
> > > use of the individual or entity to whom it is addressed and others
> > > authorized to receive it. It may contain confidential or legally
> > privileged
> > > information. If you are not the intended recipient you are hereby
> > notified
> > > that any disclosure, copying, distribution or taking any action in
> > reliance
> > > on the contents of this information is strictly prohibited and may be
> > > unlawful. If you have received this communication in error, please
> notify
> > > us immediately by responding to this email and then delete it from your
> > > system. The firm is neither liable for the proper and complete
> > transmission
> > > of the information contained in this communication nor for any delay in
> > its
> > > receipt.
> > >
> >
>
> --
> _____________________________________________________________
> The information contained in this communication is intended solely for the
> use of the individual or entity to whom it is addressed and others
> authorized to receive it. It may contain confidential or legally privileged
> information. If you are not the intended recipient you are hereby notified
> that any disclosure, copying, distribution or taking any action in reliance
> on the contents of this information is strictly prohibited and may be
> unlawful. If you have received this communication in error, please notify
> us immediately by responding to this email and then delete it from your
> system. The firm is neither liable for the proper and complete transmission
> of the information contained in this communication nor for any delay in its
> receipt.
>

Re: Fetching workflow parameter values through the API

Posted by Shwetha GS <sh...@inmobi.com>.
The following code does give the workflow parameters:
        OozieClient client = new OozieClient("<oozie endpoint>");
        WorkflowJob info =
client.getJobInfo("0408617-140814092104959-oozie-oozi-W");
        System.out.println(info.getConf());

prints the conf as:
<configuration>
  <property>
    <name>oozie.coord.application.path</name>
    <value>some app path</value>
  </property>
...
</configuration>

I don't see any cases where the conf is not returned




On Thu, Sep 11, 2014 at 5:26 PM, Mohammad Tariq <do...@gmail.com> wrote:

> Hi Shwetha,
>
> Thank you for the reply. I actually tried getConf(), but it didn't return
> anything. Are there any corner case wherein the parameters passed to a
> particular workflow don't turn up if I call WorkflowJob.getConf()??
>
>
> [image: http://]
> Tariq, Mohammad
> about.me/mti
> [image: http://]
> <http://about.me/mti>
>
>
> On Wed, Sep 10, 2014 at 3:57 PM, Shwetha GS <sh...@inmobi.com> wrote:
>
> > getJobInfo(String jobId) returns WorkflowJob and WorkflowJob.getConf()
> has
> > the properties that are passed to the workflow. You can get the hadoop
> job
> > id from WorkflowJob.getActions() and then get the job metrics(#records
> etc)
> > from hadoop
> >
> > -Shwetha
> >
> > On Wed, Sep 10, 2014 at 6:25 AM, Mohammad Tariq <do...@gmail.com>
> > wrote:
> >
> > > Hello list,
> > >
> > > I have written an auditing service which periodically captures some
> > > predefined metrics for our daily workflows and stores them into HBase
> for
> > > further analyses. I am using Java API for this and till now the
> processes
> > > was quite smooth(courtesy awesome oozie API).
> > >
> > > Now we have decided to capture few more things like *parameters* passed
> > to
> > > a particular workflow, *number of records* affected
> > > *(inserted/deleted/updated)* during the course of execution etc. I
> would
> > > like to ask you guys if there is any API which supports these things. I
> > > tried looking at the API docs, but couldn't find one.
> > >
> > > I would really appreciate if someone could point me towards the right
> > > direction. Thank you so much for your precious time.
> > >
> > > [image: http://]
> > > Tariq, Mohammad
> > > about.me/mti
> > > [image: http://]
> > > <http://about.me/mti>
> > >
> >
> > --
> > _____________________________________________________________
> > The information contained in this communication is intended solely for
> the
> > use of the individual or entity to whom it is addressed and others
> > authorized to receive it. It may contain confidential or legally
> privileged
> > information. If you are not the intended recipient you are hereby
> notified
> > that any disclosure, copying, distribution or taking any action in
> reliance
> > on the contents of this information is strictly prohibited and may be
> > unlawful. If you have received this communication in error, please notify
> > us immediately by responding to this email and then delete it from your
> > system. The firm is neither liable for the proper and complete
> transmission
> > of the information contained in this communication nor for any delay in
> its
> > receipt.
> >
>

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.

Re: Fetching workflow parameter values through the API

Posted by Mohammad Tariq <do...@gmail.com>.
Hi Shwetha,

Thank you for the reply. I actually tried getConf(), but it didn't return
anything. Are there any corner case wherein the parameters passed to a
particular workflow don't turn up if I call WorkflowJob.getConf()??


[image: http://]
Tariq, Mohammad
about.me/mti
[image: http://]
<http://about.me/mti>


On Wed, Sep 10, 2014 at 3:57 PM, Shwetha GS <sh...@inmobi.com> wrote:

> getJobInfo(String jobId) returns WorkflowJob and WorkflowJob.getConf() has
> the properties that are passed to the workflow. You can get the hadoop job
> id from WorkflowJob.getActions() and then get the job metrics(#records etc)
> from hadoop
>
> -Shwetha
>
> On Wed, Sep 10, 2014 at 6:25 AM, Mohammad Tariq <do...@gmail.com>
> wrote:
>
> > Hello list,
> >
> > I have written an auditing service which periodically captures some
> > predefined metrics for our daily workflows and stores them into HBase for
> > further analyses. I am using Java API for this and till now the processes
> > was quite smooth(courtesy awesome oozie API).
> >
> > Now we have decided to capture few more things like *parameters* passed
> to
> > a particular workflow, *number of records* affected
> > *(inserted/deleted/updated)* during the course of execution etc. I would
> > like to ask you guys if there is any API which supports these things. I
> > tried looking at the API docs, but couldn't find one.
> >
> > I would really appreciate if someone could point me towards the right
> > direction. Thank you so much for your precious time.
> >
> > [image: http://]
> > Tariq, Mohammad
> > about.me/mti
> > [image: http://]
> > <http://about.me/mti>
> >
>
> --
> _____________________________________________________________
> The information contained in this communication is intended solely for the
> use of the individual or entity to whom it is addressed and others
> authorized to receive it. It may contain confidential or legally privileged
> information. If you are not the intended recipient you are hereby notified
> that any disclosure, copying, distribution or taking any action in reliance
> on the contents of this information is strictly prohibited and may be
> unlawful. If you have received this communication in error, please notify
> us immediately by responding to this email and then delete it from your
> system. The firm is neither liable for the proper and complete transmission
> of the information contained in this communication nor for any delay in its
> receipt.
>

Re: Fetching workflow parameter values through the API

Posted by Shwetha GS <sh...@inmobi.com>.
getJobInfo(String jobId) returns WorkflowJob and WorkflowJob.getConf() has
the properties that are passed to the workflow. You can get the hadoop job
id from WorkflowJob.getActions() and then get the job metrics(#records etc)
from hadoop

-Shwetha

On Wed, Sep 10, 2014 at 6:25 AM, Mohammad Tariq <do...@gmail.com> wrote:

> Hello list,
>
> I have written an auditing service which periodically captures some
> predefined metrics for our daily workflows and stores them into HBase for
> further analyses. I am using Java API for this and till now the processes
> was quite smooth(courtesy awesome oozie API).
>
> Now we have decided to capture few more things like *parameters* passed to
> a particular workflow, *number of records* affected
> *(inserted/deleted/updated)* during the course of execution etc. I would
> like to ask you guys if there is any API which supports these things. I
> tried looking at the API docs, but couldn't find one.
>
> I would really appreciate if someone could point me towards the right
> direction. Thank you so much for your precious time.
>
> [image: http://]
> Tariq, Mohammad
> about.me/mti
> [image: http://]
> <http://about.me/mti>
>

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.