您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么使用Shell腳本判斷HDFS文件/目錄是否存在”,在日常操作中,相信很多人在怎么使用Shell腳本判斷HDFS文件/目錄是否存在問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Shell腳本判斷HDFS文件/目錄是否存在”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文主要講述如何使用Shell腳本判斷HDFS文件或目錄是否存在,算是一個小技巧吧,這幾天做PoC的時候感覺還挺有用的。因為HDFS設計的是“一次寫入,多次讀取”,不可以修改數據,只能追加或者刪除,所以,如果目標文件或目錄在HDFS上已經存在的話,則無法創建成功。
測試環境:
操作系統版本為Redhat7.2
CM和CDH版本為5.11.2
文章目錄結構:
1. 文檔編寫目的
2. 測試原理
3. Shell腳本測試
3.1 測試路徑是否存在
3.2 測試目錄是否存在
3.3 測試文件是否存在
4. 總結
通過hadoop fs -test來判斷文件或者目錄是否存在,一次只能傳遞一個測試參數。
Usage: hadoop fs -test -[defsz] URI -test: Only one test flag is allowed Options: -d: if the path is a directory, return 0. -e: if the path exists, return 0. -f: if the path is a file, return 0. -s: if the path is not empty, return 0. -z: if the file is zero length, return 0. |
比如判斷HDFS上的某個文件目錄是否存在,可以執行如下命令:
hadoopfs -test -d $path #判斷目錄是否存在
hadoopfs -test -e $path #判斷路徑(文件或者目錄)是否存在
1、準備測試目錄,包含一個文件和一個文件夾
[root@bigdata60 ~]# hadoop fs -ls /user/wdtest Found 2 items drwxr-xr-x - fusionuser wdtest 0 2018-07-03 13:26 /user/wdtest/.fusion -rw-r--r-- 3 fusionuser wdtest 908 2018-07-06 22:37 /user/wdtest/hosts |
2、編寫測試腳本如下:
#!/bin/sh
path=$1
hadoop fs -test -e $path if [ $? -eq 0 ]; then echo "Path is exist!" else echo "Path is not exist!" fi |
3、執行“./etest.sh /user/wdtest”命令,運行測試腳本,驗證輸出結果
1、編寫測試腳本如下:
#!/bin/sh
path=$1
hadoop fs -test -d $path if [ $? -eq 0 ]; then echo "Directory is exist!" else echo "Directory is not exist!" fi |
2、分別執行“./dtest.sh /user/wdtest”命令和“./dtest.sh /user/wdtest/aa”命令,運行測試腳本,驗證輸出結果
1、編寫測試腳本如下:
#!/bin/sh
path=$1
hadoop fs -test -f $path if [ $? -eq 0 ]; then echo "File is exist!" else echo "File is not exist!" fi |
2、分別執行“./ftest.sh /user/wdtest/hosts”命令和“./dtest.sh /user/wdtest/host”命令,運行測試腳本,驗證輸出結果
1、通過hadoop fs -test -[defsz] URI 可以判斷HDFS文件或目錄是否存在,-test一次只能傳遞一個測試參數,不能執行類似 hadoop fs -test -dfURI或者hadoop fs -test -d -f URI這種命令;
2、hadoop fs -test -[defsz] URI 返回值是不輸出的,需要通過“$?”這個特殊變量獲取返回值;
3、-s和-z命令我測試過,但覺得不怎么常用,所以沒在文章中講述,有興趣可以自己測一下,比較簡單,更換一下腳本參數即可;
4、判斷HDFS文件目錄是否存在后,可以執行比如創建、刪除目錄或文件等操作,當然還有一些更高級的玩法,這里就不演示了。
到此,關于“怎么使用Shell腳本判斷HDFS文件/目錄是否存在”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。