shell判断hdfs文件目录是否存在

来源:互联网 发布:淘宝玩具店 编辑:程序博客网 时间:2024/06/07 07:41

hadoop有提供相应的脚本去验证文件目录是否存在的:

-bash-3.2$ hadoop fs -help...-test -[defsz] <path>:Answer various questions about <path>, with result via exit status.  -d  return 0 if <path> is a directory.  -e  return 0 if <path> exists.  -f  return 0 if <path> is a file.  -s  return 0 if file <path> is greater than zero bytes in size.  -z  return 0 if file <path> is zero bytes in size.else, return 1.

测试的hdfs目录中:

-bash-3.2$ hadoop fs -ls /user/hive/warehouse/yhd_gmv_monthFound 3 itemsdrwxr-xr-x   - deploy supergroup          0 2014-08-25 11:15 /user/hive/warehouse/yhd_gmv_month/ds=2014-08-24drwxr-xr-x   - deploy supergroup          0 2014-08-26 13:02 /user/hive/warehouse/yhd_gmv_month/ds=2014-08-25drwxr-xr-x   - deploy supergroup          0 2014-08-27 08:09 /user/hive/warehouse/yhd_gmv_month/ds=2014-08-26

检验昨天产生的目录是否产生的shell脚本:

yesterday=$(date -d '-1 day' '+%Y-%m-%d')hadoop fs -test -e /user/hive/warehouse/yhd_gmv_month/ds=$yesterdayif [ $? -eq 0 ] ;thenecho 'exist'elseecho 'Error! Directory is not exist'fi

验证存在的输出结果如下:

-bash-3.2$ hadoop fs -test -e /user/hive/warehouse/yhd_gmv_month/ds=$yesterdayif [ $? -eq 0 ] ;thenecho 'exist'elseecho 'Error! Directory is not exist Or Zero bytes in size'fi-bash-3.2$ if [ $? -eq 0 ] ;then> echo 'exist'> else> echo 'Error! Directory is not exist Or Zero bytes in size'> fiexist

2 0