1. 程式人生 > >關於查看HDFS上的文件,文件目錄,文件是否為空的命令總結

關於查看HDFS上的文件,文件目錄,文件是否為空的命令總結

tails tps details 輸出 urn ret imp 對數 返回值

今天做sqoop的增量導入操作,但是在第一次執行的時候,數據是全量的,後面數據就是按照增量的方式對數據進行導入操作。不想手動的去操作shell命令,就對

是否是全量導入還是變量導入做了一個判斷操作但是使用下面的shell命令好像不管用

test -e study && echo "exist!" || echo "not exist!"

最終的解決辦法是將采用HDFS自己的命令去判斷文件是夠存在命令如下:
首先來看一下HDFS的命令行
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.

這裏明明白白的寫著我們執行命令文件的返回值:

從上面的輸出可以看出,我們可以使用test命令來判斷某個文件是否存在。如果文件存在,這個命令將返回0;反之則返回1。

[root@VM200-12 log]# hadoop fs -test -f /user/hive/warehouse/test.db/increat_table/*
[root@VM200-12 log]# echo $?
0   -----文件存在則顯示為0
下面是我的代碼,當全量導入之後文件夾存在,這個時候文件夾存在則進行增量導入。反之

hadoop fs -test -d /user/hive/warehouse/test.db/increat_table
if [ $? -eq 0 ] ;then echo 文件目錄已經存在,執行增量導入 ./increment.sh else echo 文件目錄不存在,執行全量導入操作 ./import_loan_base.sh fi

參考內容鏈接如下;

https://blog.csdn.net/b6ecl1k7bs8o/article/details/80479800

關於查看HDFS上的文件,文件目錄,文件是否為空的命令總結