[ 
https://issues.apache.org/jira/browse/OOZIE-1619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rohini Palaniswamy updated OOZIE-1619:
--------------------------------------

    Summary: Enhancing sharelib support  (was: Sharelib support.)

Currently Oozie provides support for user sharing action 
(pig/hive/hbase/hcatalog/distcp) jars through sharelib. 

Current limitations:
   - The sharelib directory is created under workflow system lib path. During 
oozie upgrade or a pig upgrade, the sharelib directory is deleted and 
recreated. This makes all the existing running jobs fail because Hadoop fails 
any jobs if the jars shipped using Distributed Cache have changed before the 
job completes. Having to rerun those jobs wastes valuable cluster resources and 
causes sla misses.
   
Features:

Sharelib Creation:
  -  Admin runs sharelib create command as usual. But the command copies the 
sharelib contents into a new timestamped version of the sharelib directory 
(lib_<timestamp>) under the system lib path directory. Previously the contents 
where copied directly under system lib path directory.
  -  Oozie on startup picks up the latest sharelib directory. It purges 
sharelib directories older than 7 days (configurable) except the previous 
latest one. 
  -  Contents of sharelib can viewed by running "oozie admin -shareliblist" 
command.
  
Sharelib Updation:
  - While oozie server is up, if there are newer versions of pig or hive jars 
available it should be possible for oozie to switch to the latest one without 
restarting oozie. This is done by admin running the sharelib create command 
again with the newer version of sharelib. Then "oozie admin -sharelibupdate" 
command can be issued to the server to make it pick up the latest sharelib. If 
it is a HA environment it will be propagated to all servers. As the previous 
sharelib is still not deleted, jobs which started with those jars will run 
successfully to completion.
  
Sharelib Meta File:
  - This is an alternative to the sharelib directory. If you already have 
pig,hive,etc jars installed in some hdfs locations, then this property file can 
be used to specify those locations. Newer versions can be picked up by updating 
this file and invoking "oozie admin -sharelibupdate". 
  
Shipping Launcher jars:
  - By default, it is expected that the sharelib for particular action contains 
the oozie launcher jar as well. For eg: pig action sharelib should have 
oozie-sharelib-pig-<oozie version>.jar. This is automatically there when you 
use the sharelib tar file created by oozie. If you have your own setup with 
just the pig jars, then you can set oozie.action.ship.launcher.jar=true. In 
that case, oozie will automatically ship the launcher jars (from the tomcat 
webapp WEB-INF/lib directory) to hdfs on startup into launcher_<timestamp> 
directory under the system lib path directory. When launching jobs, it includes 
them in distributed cache for corresponding action. Purging of older 
launcher_<timestamp> directories is done during startup similar to 
lib_<timestamp> directories.

> Enhancing sharelib support
> --------------------------
>
>                 Key: OOZIE-1619
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1619
>             Project: Oozie
>          Issue Type: Improvement
>            Reporter: purshotam shah
>




--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to