Thanks that worked like a charm!

On Sun, Apr 27, 2014 at 5:46 PM, Mohammad Islam <[email protected]> wrote:

> You should not copy that file.
> One of the way is to send the props file as <file> tag and Oozie will make
> sure the file is one the current working directory of the executable node.
> You can access that file from you java code.
>
> On Sunday, April 27, 2014 4:28 PM, Jonathan Hodges <[email protected]>
> wrote:
>
> Okay I figured out the issue.  The Java class expects a local filesystem
> for the properties file instead of HDFS.  Since a Java action can be
> executed on any of the Hadoop nodes I had to copy this properties file to
> each Hadoop node's local filesystem.
>
> Even though this fixed the problem I don't really like the solution. I
> would prefer to have the properties file encapsulated in Oozie application
> directory in HDFS.  Is there no way to pass local property files to Java
> actions without physically copying to all the Hadoop nodes?
>
>
>
> On Wed, Apr 23, 2014 at 10:44 AM, Jonathan Hodges <[email protected]>
> wrote:
>
> > Hi,
> >
> > The following is my workflow.xml and properties file for the Java action.
> >
> > <workflow-app xmlns="uri:oozie:workflow:0.5" name="camus-wf">
> >     <start to="camusNonAvroJob"/>
> >     <action name="camusNonAvroJob">
> >         <java>
> >             <job-tracker>${jobTracker}</job-tracker>
> >             <name-node>${nameNode}</name-node>
> >             <configuration>
> >             <property>
> >                     <name>mapred.job.name</name>
> >                     <value>camusNonAvroJob</value>
> >                 </property>
> >                 <property>
> >                     <name>mapred.job.queue.name</name>
> >                     <value>${queueName}</value>
> >                 </property>
> >             </configuration>
> >
>  <main-class>com.linkedin.camus.etl.kafka.CamusJob</main-class>
> >     <arg>-P</arg>
> >     <arg>${camusNonAvroJobProperties}</arg>
> >         </java>
> >         <ok to="end"/>
> >         <error to="fail"/>
> >     </action>
> >     <kill name="fail">
> >         <message>${wf:errorMessage(wf:lastErrorNode())}</message>
> >     </kill>
> >     <end name="end"/>
> > </workflow-app>
> >
> > nameNode=hdfs://x.x.x.x:9000
> > jobTracker=x.x.x.x:9001
> > queueName=default
> > oozie.wf.application.path=${nameNode}/user/${user.name
> > }/oozie/camusNonAvroJob
> > camusNonAvroJobProperties=${nameNode}/user/${user.name
> > }/oozie/camusNonAvroJob/camus_non_avro.properties
> >
> >
> > This removed forward slash '/' from the HDFS path is causing a file not
> > found exception and the MR job getting killed.bin/oozie job -config
> > /home/hadoop/oozie/camusNonAvroJob/camus-workflow.properties -run
> >
> > Failing Oozie Launcher, Main class
> [com.linkedin.camus.etl.kafka.CamusJob], main() threw exception,
> hdfs:/x.x.x.x:9000/user/hadoop/oozie/camusNonAvroJob/camus_non_avro.properties
> (No such file or directory)
> > java.io.FileNotFoundException:
> hdfs:/x.x.x.x:9000/user/hadoop/oozie/camusNonAvroJob/camus_non_avro.properties
> (No such file or directory)
> >     at java.io.FileInputStream.open(Native Method)
> >     at java.io.FileInputStream.<init>(FileInputStream.java:146)
> >     at com.linkedin.camus.etl.kafka.CamusJob.run(CamusJob.java:602)
> >     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
> >     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
> >     at com.linkedin.camus.etl.kafka.CamusJob.main(CamusJob.java:572)
> >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >
> >
> > Has anyone seen this before?
> >
> > Thank in advance!
> > Jonathan
> >
> >
>

Reply via email to