通过脚本实现简单替换HDFS上的文件
有时需要替换HDFS上的文件,但Hadoop目前没提供相应的hadoop fs -mv命令,如是自己动手通过脚本实现,此脚本支持通配符,支持文件夹整个上传等:
#!/usr/bin/env bash
prePath=$2
args=$1
func_putFile() {
file=$1
hadoopFile=$(basename $file)
echo "put file: $file"
hadoop fs -rm $prePath/$hadoopFile &>/dev/null
hadoop fs -put $file $prePath/$hadoopFile
}
func_put() {
args=$1
if [ -d "$args" ];then
cd $args
func_put "*"
cd ..
elif [ "$args" = "*" ];then
for file in *;do
if [ -d "$file" ];then
func_put $file
else
func_putFile $file
fi
done
else
func_putFile $args
fi
}
echo $args
for file in $args;do
func_put $file
done
使用时传入两参数,第一个是源文件(有通配符时请用/转义),第二个是HDFS目标文件夹。
相关阅读:
相关推荐
WeiHHH 2020-09-23
tomli 2020-07-26
eternityzzy 2020-07-19
飞鸿踏雪0 2020-07-09
swazerz 2020-06-22
ViMan0 2020-06-21
zzjmay 2020-06-08
sujins 2020-06-05
strongyoung 2020-06-01
sujins 2020-05-30
sujins 2020-05-29
archive 2020-05-28
憧憬 2020-08-21
zzjmay 2020-07-04
zzjmay 2020-05-17
ViMan0 2020-05-06
zzjmay 2020-04-09