Работа Oozie не берет сценарий оболочки, но она успешна - PullRequest
0 голосов
/ 14 октября 2019

На самом деле я запускаю сценарий оболочки через действие оболочки 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?

...