1. 程式人生 > >Linux Crontab執行hadoop命令指令碼失敗

Linux Crontab執行hadoop命令指令碼失敗

   最近在寫一個Hadoop系列操作的排程指令碼,由crontab排程執行。指令碼單獨執行沒有任何問題,但是一旦執行hadoop相關操作,如hive、Hadoop相關命令,就莫名其妙的失敗。查了很多資料,後來才發現是環境變數的問題,需要在指令碼中新增“source /etc/profile”命令,對於具有多個使用者不同配置的系統,則新增source  ~/.base_profile。經過測試,果然有效。

   此外,還需要注意的地方有:

1、在crontab排程器中,在指令碼前加不加sh 都沒有影響。

2、在所有指令碼中批量新增“source /etc/profile " 的方法: sed -i -e "/bin\/bash/asource \/etc\/profile" 。 如果是新增多行,可以用'\n' 連線相應的命令。