На самом деле я запускаю сценарий оболочки через действие оболочки sqoop в кластере kerberos, который использует учетные данные hadoop api для защиты паролем. Он выполняется успешно, но не получает сценарий оболочки, так как я не вижу загруженных таблиц. Также нет ошибок ..
Сценарий оболочки с командой sqoop: Этот сценарий оболочки, читающий список таблиц БД из файла 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?