Hadoop provides scripts to verify whether the file directory exists:
-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.
In the HDFS directory for testing:
-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
Check whether the shell scripts generated by the directories generated yesterday are:
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
The output result of the verification is as follows:
-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
Shell checks whether the HDFS file directory exists