解決shell腳本使用hadoop 命令 報錯 command not found


背景

需要定時將本地文件上傳到HDFS 中,為了方便操作,寫了SHELL腳本定時上傳,其代碼如下,文件名為mkdir_file.sh

export PATH =/opt/soft/hadoop-2.7.7/bin
DAY=`date +%d`
if [ $DAY -eq 1 ]
then
hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`
hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`/`date +%Y%m%d`
echo today first day of this month
else
hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`/`date +%Y%m%d`
date=$(date -d "yesterday" +%Y%m%d)
hadoop dfs -put /opt/data/wfbmall/16/history/wfbmall_${date}.log /flume/data/logs/`date +%Y%m`/wfbmall_${date}.log
echo ${date}
echo today is not first day of this month
fi

但是 直接用source mkdir_file.sh 不會報錯,但是通過crontab -e 進行定時就會報錯,

 

 原因:是因為缺少HADOOP運行環境,故把出來的路徑加上 /bin 直接執行即可,其代碼如下

 

 把路徑寫全就不會報錯了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM