When I run ‘Sqoop’ from command line it works fine, but when I run it via
Oozie job it just keeps showing the following message:
2014-02-12 19:04:47,854 DEBUG DefinitionXCommand:545 – USER[root] GROUP[-]
TOKEN[] APP[sqoop] JOB[0000004-140211210850200-oozie-oozi-W] ACTION[-]
Execute command [definition] key [0000004-140211210850200-oozie-oozi-W]
My workflow.xml looks like this:
<workflow-app name=”sqoop” xmlns=”uri:oozie:workflow:0.1″>
<start to=”etl” />
<action name=”etl”>
<sqoop xmlns=”uri:oozie:sqoop-action:0.2″>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path=”${outputBaseDir}/${tableName}/${period}” />
</prepare>
<configuration>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
</configuration>
<arg>import</arg>
<arg>–connect</arg>
<arg>jdbc:mysql://${mysqlHost}/${mysqlDb}</arg>
<arg>–username</arg>
<arg>root</arg>
<arg>–target-dir</arg>
<arg>${outputBaseDir}/${tableName}/${period}</arg>
<arg>–query</arg>
<arg>${query}</arg>
<arg>–split-by</arg>
<arg>${splitBy}</arg>
<arg>-m</arg>
<arg>1</arg>
</sqoop>
<ok to=”end” />
<error to=”fail” />
</action>
<kill name=”fail”>
<message>Script failed, error
message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name=’end’ />
</workflow-app>
job.properties looks like this:
nameNode=hdfs://10.0.2.15:8020
jobTracker=10.0.2.15:8021
queueName=default
mysqlHost=10.0.2.15
mysqlDb=test
outputBaseDir=/user/ajay
tableName=temperatures
period=2014010200
query=select *, DATE_FORMAT(created_time, ‘%Y%m%d%H’) as period from
${tableName} where DATE_FORMAT(created_time, ‘%Y%m%d%H’) = ${period} and
\\$CONDITIONS
splitBy=id
oozie.wf.application.path=${nameNode}/user/ajay/workflow.xml
outputDir=sqoop-output
Started the job under Sandbox like this:
oozie job -config ./job.properties -run
The following works from command line:
sqoop import –connect jdbc:mysql://10.0.2.15/test –username root
–target-dir $OUTPUT_DIR –query “select *, DATE_FORMAT(created_time,
‘%Y%m%d%H’) as period from $TABLE_NAME where DATE_FORMAT(created_time,
‘%Y%m%d%H’) = $PERIOD and \$CONDITIONS” –split-by id
What am I doing wrong? Please help. Thanks.