Created 05-04-2016 07:35 AM
What exactly is xmls attribute in oozie workflows?
I am trying to run a sqoop command but I keep getting
ava.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SqoopMain not found
Now, I have tried everything suggested. Set the permissions right. Have /share/lib in /user/oozie.
Running oozie jobs from oozie user only.
Just wondering if xmlns could be the problem? I am using ambari.
This is what I get when I check my versions:
sqoop version Warning: /usr/hdp/2.4.0.0-169/hbase does not exist! HBase imports will fail. Please set $HBASE_HOME to the root of your HBase installation. Warning: /usr/hdp/2.4.0.0-169/accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. 16/05/04 12:54:07 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.4.0.0-169 Sqoop 1.4.6.2.4.0.0-169 git commit id c327581e17e308322d77a2ae245d0287c0e488d4 Compiled by jenkins on Wed Feb 10 08:35:28 UTC 2016 [oozie@warehouse root]$ oozie version Oozie client build version: 4.2.0.2.4.0.0-169
My workflow has;
<workflow-app name="once-a-day" xmlns="uri:oozie:workflow:0.1"> <start to="sqoopAction"/> <action name="sqoopAction"> <sqoop xmlns="uri:oozie:sqoop-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <command>list-tables --connect jdbc:mysql://FQDN/erp --username hive --password hive </command> <archive>/lib/mysql-connector-java-5.1.38-bin.jarz#mysql-connector-java-5.1.38-bin.jar</archive> </sqoop> <ok to="end"/> <error to="killJob"/> </action> <kill name="killJob"> <message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message> </kill> <end name="end" /> </workflow-app>
job.props:
nameNode=hdfs://FQDN:8020 jobTracker=FQDN:8050 queueName=default oozie.libpath=/user/oozie/share/lib/, /user/oozie/share/lib/lib_20160427195409 oozie.use.system.libpath=true oozie.wf.application.path=${nameNode}/user/${user.name}/scheduledimport start=2016-04-26T00:00Z end=2016-12-31T00:00Z workflowAppUri=${nameNode}/user/${user.name}/scheduledimport
Created 05-04-2016 09:18 AM
xmlns stands for XML Name Space, you can find general introduction here. In Oozie workflows there are 2 xmlns specified, the one on top:
<workflow-appname="once-a-day"xmlns="uri:oozie:workflow:0.1">
defines XML tags for Oozie workflow files in general. The other one:
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
defines XML tags specific to Sqoop action, you can find its definition here. In your case xmlns is not a problem. If it were Oozie would reject your workflow xml file as incorrect, for example, because of using non-existent tags, or existent ones in a wrong way.
Created 05-04-2016 09:18 AM
xmlns stands for XML Name Space, you can find general introduction here. In Oozie workflows there are 2 xmlns specified, the one on top:
<workflow-appname="once-a-day"xmlns="uri:oozie:workflow:0.1">
defines XML tags for Oozie workflow files in general. The other one:
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
defines XML tags specific to Sqoop action, you can find its definition here. In your case xmlns is not a problem. If it were Oozie would reject your workflow xml file as incorrect, for example, because of using non-existent tags, or existent ones in a wrong way.