Oozie Shell行动

时间:2017-07-26 18:16:39

标签: shell hadoop oozie

我有一个oozie shell动作,它接收来自HDFS txt文件的输入,但是每次我调用txt文件时它都说目录不存在,但它存在于服务器上。

这是我的shell脚本:

#!/bin/bash

Ingesta="MUM_APPs"
msj="'${1}'"
#alerta=`hdfs dfs -test -e  /user/inpt_red/oozie/workspace/envio_sms/EnviaSMS/Num_Alerta.txt`

while read line
 do
line=${i}
    Num=$(echo $line | cut -d '|' -f1)
    Proceso=$(echo $line | cut -d '|' -f5)

    if [ "$Proceso" == "*" ] || [ "$Proceso" == "$Ingesta" ]; then
        source /user/inpt_red/oozie/workspace/envio_sms/EnviaSMS/EnviaSMS.sh  ${Num} "'ALERTA!!  $Ingesta (`date +%d-%m-%Y` `date +%H:%M:%S`), $msj'"
    fi`enter code here`

done < <(hadoop fs -cat hdfs://mixsfwdebda01.telefonica.com/user/inpt_red/oozie/workspace/envio_sms/EnviaSMS/Num_Alerta.txt)

编辑1:

以下是我遇到的新错误:

sh: line 17: syntax error near unexpected token `<'
sh: line 17: `done < <(hadoop fs -cat hdfs://mixsfwdebda01.telefonica.com/user/inpt_red/oozie/workspace/envio_sms/EnviaSMS/Num_Alerta.txt)'
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.impl.MetricsSystemImpl).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

1 个答案:

答案 0 :(得分:2)

或者,您可以将脚本更改为:

hadoop fs -cat hdfs://mixsfwdebda01.telefonica.com/user/inpt_red/oozie/workspace/envio_sms/EnviaSMS/Num_Alerta.txt |\
while read line; do
    echo "${line}"
    #Some Stuff
    #some more stuff
done