標籤:io ar 檔案 2014 on size ad ef c
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
shell判斷hdfs檔案目錄是否存在