通过脚本实现简单替换Hdfs上的文件

    技术2022-05-19  27

    有时需要替换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目标文件夹。


    最新回复(0)