I agree that its generally a good idea to deprecate something when we
change/remove it.  That said, even though the sharelib was technically
optional, don't we strongly recommend that users install it?  Ideally, its
a behind-the-scence change that users shouldn't really notice.

Though if we were to deprecate it, how would that work?  I suppose we could
have Oozie include the Main class in the launcher jar as it was doing
before, but only when oozie.use.system.libpath is not true; I'm not sure if
this would work, but to do that, we could have the assembly copy the
oozie-*.jar from each sharelib into the libs dir so they're on the
classpath (but still built/tested in separate modules).

thanks
- Robert


On Tue, Apr 23, 2013 at 5:09 PM, Virag Kothari <vi...@yahoo-inc.com> wrote:

>
> Tucu, Thanks for the reply and explanation.
> For workflows running in Y!, cold upgrade is not a feasible option as we
> cannot expect all the running actions to complete before Oozie restart.
> Hot upgrade is a good option, but we will need time to implement it as we
> currently don't have sharelib as part of our deployment.
> So can we deprecate the refactoring of launcher classes in this release?
> Also, all the launcher classes are only added to distributed cache if the
> workflow is configured to use system lib path
> (oozie.use.system.libpath=true)
> We shouldn't mandate the workflow to have this property as they are
> oozie's launcher classes.
>
> Thanks,
> Virag
>
>
>
> On 4/23/13 3:21 PM, "Alejandro Abdelnur" <tuc...@gmail.com> wrote:
>
> >Virag,
> >
> >On sharelib being required, yes you are correct. For this we should:
> >
> >* Make 100% clear in the quick-start/install docs that the sharelib is
> >REQUIRED.
> >
> >* Add a check at Oozie startup to verify the sharelib dir exists, else
> >fail
> >to start.
> >
> >On sharelib lib issue during upgrade for in-flight jobs. Depending on the
> >type of upgrade this may be an issue.
> >
> >* If you are upgrading an oozie server fix that does not change the
> >sharelib files, this is not an issue and you can just shutdown the oozie
> >server with in-flight jobs.
> >
> >* If you are upgrading an oozie server fix that involves sharelib files
> >changes, then you have 2 options:
> >
> >** Cold upgrade: bring all WF jobs to suspend/completion, wait till all
> >running actions end, then shutdown oozie server, upgrade oozie server and
> >sharelib. Then restart oozie server and resume WF jobs. In this case all
> >new WF actions will use the new sharelib.
> >
> >** Hot upgrade: stop oozie server. modify the oozie-site.xml sharelib
> >location to point to a new directory. upgrade the oozie server. install
> >the
> >sharelib (will be a create as the sharelib dir in HDFS does not exist).
> >start the oozie server. In this case all running WF actions will continue
> >running with no issues as the JARs in the distributed cache have not been
> >touch. All new WF actions will start using the new sharelib.
> >
> >Note that this sharelib upgrade protocol is not introduced by requiring
> >sharelib, it is required if you have applications that use sharelib today.
> >
> >Does this address your concerns?
> >
> >Thanks.
> >
> >
> >
> >On Tue, Apr 23, 2013 at 1:35 PM, Virag Kothari <vi...@yahoo-inc.com>
> >wrote:
> >
> >> Hi,
> >>
> >> With OOZIE-1311 and its subtasks,  the idea seems to move all the
> >>launcher
> >> classes like PigMain, HiveMain etc. to  their respective sharelibs.
> >> So, now shared lib is a mandatory deployment step. Before shared lib was
> >> optional as users could bundle jars with their workflow application.
> >> So always requiring shared lib seems to introduce 2 problems:
> >>
> >>   1.  The current deployments which don't use action shared lib will
> >>fail.
> >> So, probably we should deprecate the current behavior.
> >>
> >> 2. The hadoop distributed cache mechanism will fail a job if the files
> >>in
> >> DC are updated on hdfs while the hadoop job is running. So, when Oozie
> >>is
> >> restarted and shared lib is uploaded to hdfs as part of
> >>              deployment, hadoop  will fail the existing jobs for which
> >>the
> >> timestamp of  the file on hdfs doesn't match the timestamp of its copy
> >>in
> >> the job's DC.
> >>
> >>
> >> Thanks,
> >> Virag
> >>
> >>
> >>
> >>
> >>
>
>

Reply via email to