Поскольку у вас нет чека на $?
, вы можете не знать, что он не прошел. Итак, первый шаг - добавить это в сценарий оболочки. В противном случае вы не узнаете, не удалось ли выполнить сценарий оболочки (из-за сбоя улья), и Ooz ie получит статус успешного выполнения сценария оболочки.
Итак, не зная, какова настоящая причина сбоя улья код, я делаю предположение.
Если у вас есть проверка подлинности Kerberos, используемая Hive, запрос улья может давать сбой внутри сценария оболочки, вызываемого Ooz ie. Чтобы решить проблему с kerberos, вам может потребоваться сделать что-то вроде этого:
if [ -z ${HADOOP_TOKEN_FILE_LOCATION} ]
then
hive -e "select max(id) from dummy.table;" > data.txt
else
hive -e "SET mapreduce.job.credentials.binary=$HADOOP_TOKEN_FILE_LOCATION; select max(id) from dummy.table;" > data.txt
fi
Подробнее об этом можно прочитать здесь