如何使用schell脚本迭代hdfs目录中的所有文件?

avwztpqn  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(448)

我想写一个shell脚本,它将迭代hdfs目录中的所有文件,访问每个文件,并在特定目录中创建每个文件的时间。
最初,我为linux文件系统准备了一个脚本,它运行良好,我的shell脚本根据文件创建的数据进行迭代并获取文件,如下所示-

for i in /home/user/Downloads/myDIR/*
do
echo $i
tm=$(stat -c %y $i)
echo $tm | cut -c 1-10
tm2=$(echo $tm | cut -c 1-10)
echo $tm2
if [ "$tm2" = "$(date +%F)" ]
then

cp $i /home/user/OutputDir/
echo "Copy Done"
fi

done

这个脚本运行得很好,但是当我对hdfs文件实现相同的逻辑时,它就不工作了。
我已经将linux路径替换为hdfs,如下所示-

for i in `hadoop fs -ls /TestDir

但这不是在hdfs中迭代文件。
这里有什么我不知道的吗?
提前帮忙。

1l5u6lss

1l5u6lss1#

您还需要替换这些命令 stat -c %y $i
hadoop fs -stat '%y' $i cp $i /home/user/OutputDir/hadoop fs -copyToLocal $i /home/user/OutputDir/ 具有hadoop-2.7.2选项的命令列表
https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystemshell.html

相关问题