亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Shell腳本判斷HDFS文件/目錄是否存在

發布時間:2021-07-29 19:41:40 來源:億速云 閱讀:2630 作者:chen 欄目:大數據

這篇文章主要介紹“怎么使用Shell腳本判斷HDFS文件/目錄是否存在”,在日常操作中,相信很多人在怎么使用Shell腳本判斷HDFS文件/目錄是否存在問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Shell腳本判斷HDFS文件/目錄是否存在”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1     文檔編寫目的

本文主要講述如何使用Shell腳本判斷HDFS文件或目錄是否存在,算是一個小技巧吧,這幾天做PoC的時候感覺還挺有用的。因為HDFS設計的是“一次寫入,多次讀取”,不可以修改數據,只能追加或者刪除,所以,如果目標文件或目錄在HDFS上已經存在的話,則無法創建成功。

測試環境:

操作系統版本為Redhat7.2

CM和CDH版本為5.11.2

文章目錄結構:

    1.  文檔編寫目的

    2.  測試原理

    3.  Shell腳本測試

    3.1 測試路徑是否存在

    3.2 測試目錄是否存在

    3.3 測試文件是否存在

    4.  總結

2     測試原理

通過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  #判斷路徑(文件或者目錄)是否存在

3     Shell腳本測試

3.1  測試路徑是否存在

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

怎么使用Shell腳本判斷HDFS文件/目錄是否存在

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”命令,運行測試腳本,驗證輸出結果

怎么使用Shell腳本判斷HDFS文件/目錄是否存在

3.2 測試目錄是否存在

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”命令,運行測試腳本,驗證輸出結果

怎么使用Shell腳本判斷HDFS文件/目錄是否存在

3.3 測試文件是否存在

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”命令,運行測試腳本,驗證輸出結果

怎么使用Shell腳本判斷HDFS文件/目錄是否存在

4     總結

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文件/目錄是否存在”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彩票| 陆河县| 福泉市| 上饶市| 道孚县| 古交市| 盘山县| 阿巴嘎旗| 辽源市| 邯郸市| 肥西县| 香河县| 岳普湖县| 略阳县| 武城县| 通榆县| 两当县| 福安市| 玉溪市| 洪洞县| 钟祥市| 汶川县| 二连浩特市| 安康市| 北川| 阜平县| 五峰| 边坝县| 广南县| 荣昌县| 皋兰县| 易门县| 泸西县| 浦城县| 武城县| 故城县| 札达县| 呼玛县| 克拉玛依市| 五寨县| 万宁市|