将文件移动到hadoop集群的shell脚本

e5njpo68  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(384)

这可能在某处得到了答案,但我还没有找到。
我有一个简单的shell脚本,可以用来将日志文件移动到hadoop集群中。logrotate每天都会调用这个脚本。
它失败并出现以下错误:“/user/qradar:无法打开`/user/qradar'(没有这样的文件或目录)”。


# !/bin/bash

# use today's date and time

day=$(date +%Y-%m-%d)

# change to log directory

cd /var/log/qradar

# move and add time date to file name

mv qradar.log qradar$day.log

# load file into variable

# copy file from local to hdfs cluster

if [ -f qradar$day.log ]

then
    file=qradar$day.log
    hadoop dfs -put /var/log/qradar/&file   /user/qradar

else
    echo "failed to rename and move the file into the cluster" >> /var/log/messages

fi

目录/user/qradar确实存在,可以与hadoop文件命令一起列出。我还可以使用hadoop文件命令手动将文件移动到正确的目录中。我可以用这种方式将文件移动到集群中吗?有更好的办法吗?
欢迎有任何想法和意见。谢谢

daolsyd0

daolsyd01#

&file 输入错误 hadoop dfs -put 线路?
如果不是,那么这可能是您的问题,您正在运行命令 hadoop dfs -put /var/log/qradar/ 在后台(与号在后台运行命令),然后 file /user/qradar ,shell正在本地路径上查找。
我猜你的意思是(美元而不是符号):

hadoop dfs -put /var/log/qradar/$file /user/qradar

相关问题