首页 > 系统服务 > 详细

解决shell脚本使用hadoop 命令 报错 command not found

时间:2021-05-25 19:08:57      阅读:15      评论:0      收藏:0      [点我收藏+]

背景

需要定时将本地文件上传到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 直接执行即可,其代码如下

技术分享图片

 

 把路径写全就不会报错了

 

解决shell脚本使用hadoop 命令 报错 command not found

原文:https://www.cnblogs.com/cstark/p/14809923.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!