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

Attila Sasvari updated OOZIE-2601:
----------------------------------
    Attachment: OOZIE-2601-01.patch

Tests
- new test in TestShareLibService
- executed the example pig job using local filesystem resources on a pseudo 
hadoop cluster 

{code}
$ cat mapping_file.prop
oozie.oozie=file:///Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/oozie
oozie.pig=file:///Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/pig
{code}

and adjusted {{oozie-site.xml}} so that it ships the launcher jar
{code}
    <property>
        <name>oozie.action.ship.launcher.jar</name>
        <value>true</value>
    </property>
{code}

Oozie sharelib:
{code}
bin/oozie admin -shareliblist oozie                                             
       
log4j:WARN No appenders could be found for logger 
(org.apache.hadoop.security.authentication.client.KerberosAuthenticator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more 
info.
[Available ShareLib]
oozie
        
file:/Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/oozie/json-simple-1.1.jar
        
file:/Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/oozie/oozie-sharelib-oozie-5.0.0-SNAPSHOT.jar
{code}

{code}
bin/oozie job -oozie http://localhost:11000/oozie -config 
examples/apps/pig/job.properties -run -DnameNode=hdfs://localhost:9000 
-DjobTracker=localhost:8032
{code}

Generated YARN launcher shell script,
{{nm-local-dir/nmPrivate/application_1499613972796_0007/container_1499613972796_0007_01_000001/launch_container.sh}}:
{code}
export 
CLASSPATH="$PWD:$PWD/*:$HADOOP_CONF_DIR:$HADOOP_COMMON_HOME/share/hadoop/common/*:$HADOOP_COMMON_HOME/share/hadoop/common/lib/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*:$HADOOP_YARN_HOME/share/hadoop/yarn/*:$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*:file:/Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/pig/hive-hcatalog-pig-adapter-1.2.0.jar:file:/Users/asasvari/workspace/apache/oozie_dup/distro/target/oozie-5.0.0-SNAPSHOT-distro/oozie-5.0.0-SNAPSHOT/share/lib/pig/jetty-all-7.6.0.v20120127.jar
...
{code}

Pig jars are not to the distributed cache.

> Ability to use local paths for the sharelib
> -------------------------------------------
>
>                 Key: OOZIE-2601
>                 URL: https://issues.apache.org/jira/browse/OOZIE-2601
>             Project: Oozie
>          Issue Type: New Feature
>    Affects Versions: oya
>            Reporter: Robert Kanter
>            Assignee: Attila Sasvari
>             Fix For: oya
>
>         Attachments: OOZIE-2601-01.patch
>
>
> With OOZIE-2590, as part of OOZIE-1770 Oozie on Yarn work, Oozie now has full 
> control over the classpath given to the Launcher AM.  In a cluster where all 
> nodes have everything installed locally (in the same paths), it should be 
> possible to have the Launcher AM reference the local jars instead of having 
> to localize them from HDFS.
> For example, if you have Hive installed on all nodes at {{/usr/lib/hive/}} 
> and all Hive jars under {{/usr/lib/hive/lib/}}, we could have the Launcher AM 
> add {{/usr/lib/hive/lib}} to its classpath.  This saves on the overhead of 
> localizing the same jars from the hive sharelib in HDFS.  
> I think the best way to implement this is to augment the [Sharelib Mapping 
> File|https://oozie.apache.org/docs/4.2.0/AG_Install.html#Oozie_Share_Lib] 
> feature to accept {{file:///}} paths.
> If we had this also work with the "oozie" sharelib and the Oozie jars in the 
> individual sharelibs (e.g. have the Mapping file take comma-separated 
> dirs/jars), then in a cluster with everything installed on all of the nodes, 
> you wouldn't need to bother with the sharelib at all!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to