创建目录时没有错误,但没有创建目录

时间:2017-02-05 09:06:19

标签: bash hadoop

start.sh启动copy_file.sh并传递2个参数

yeasterday_with_dash=2017-01-31
today_without_dash=20170201

echo "-----------RUN copy mta-------------"
bash copy_file.sh mta $today_without_dash
echo "-----------RUN copy rcr-------------"
bash copy_file.sh rcr $today_without_dash
echo "-----------RUN copy sub-------------"
bash copy_file.sh sub $today_without_dash

copy_file.sh用于检查目录是否存在以及是否创建目录。

hdfs_dir=/apps/hive/warehouse/mydb.db/fct_evkuzmin/${2}/file_${1}

if hadoop fs -test -d $hdfs_dir ; then
    echo "Directory "$hdfs_dir" exists"
else
    hadoop fs -mkdir $hdfs_dir
    echo "Creating "$hdfs_dir
fi

该脚本似乎成功运行。

日志。

yeasterday_with_dash=2017-01-31
today_without_dash=20170201
-----------RUN copy mta-------------
mkdir: `/apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_mta': No such file or directory
Creating /apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_mta
end copy mta files
-----------RUN copy rcr-------------
mkdir: `/apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_rcr': No such file or directory
Creating /apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_rcr
end copy rcr files
-----------RUN copy sub-------------
mkdir: `/apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_sub': No such file or directory
Creating /apps/hive/warehouse/mydb.db/fct_evkuzmin/20170201/file_sub
end copy sub files

但是没有创建实际目录。问题是什么?

1 个答案:

答案 0 :(得分:2)

使用带有mkdir参数的-p也可以创建父目录。

hadoop fs -mkdir -p etc