实际上,我是在kerberos集群中通过sqoop shell动作运行shell脚本的,该集群正在使用hadoop api凭据进行密码保护。.它运行成功,但没有拾取shell脚本,因为我看不到表已加载。也没有错误。.
带有sqoop命令的Shell脚本: 这个shell脚本从conf / fulllist.txt文件中读取数据库表列表
#!/bin/sh
echo `date` > /tmp/out
server = $1
dbname = $2
currDir=`realpath ${0} | rev | cut -d"/" -f2- | rev`
...........
..........
sqoop import -Dmapreduce.job.user.classpath.first=true -
Dhadoop.security.credential.provider.path=
jceks://hdfs/user/root/mssql..pass.jceks \
--connect
'jdbc:jtds:sqlserver://'${server}'.use.ucdp.net/'${dbname}';
integratedSecurity=true;
domain=use.ucdp.net;database='${dbname}';' \
--username dataid \
--password-alias mssql.data.pass \
--query "SELECT * from ${db}.dbo.${tbl} WITH(NOLOCK) WHERE \$CONDITIONS" -m 1 \
-----------
done < <(tail -n +2 ${currDir}/conf/fulllist.txt | grep -v "#")'
---
Workflow.xml-->
<start to="shell_1"/>
<action name="shell_1">
<shell xmlns="uri:oozie:shell-action:0.3">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>/user/id/sqoop_full.sh</exec>
<argument>servername</argument>
<argument>databasename</argument>
<file>/user/id/sqoop_full.sh</file>
<file>/user/id/conf/fulllist.txt</file>
</shell>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>${wf:errorMessage(wf:lastErrorNode())}</message>
</kill>
<end name="end"/>
</workflow-app>
workflow.xml文件中是否存在任何错误?