91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么使用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

祁门县| 乐亭县| 象州县| 富源县| 尼勒克县| 昌吉市| 龙州县| 灵璧县| 丽江市| 泰来县| 大荔县| 晴隆县| 金坛市| 沐川县| 藁城市| 漾濞| 哈巴河县| 浑源县| 东台市| 湘乡市| 万安县| 当阳市| 厦门市| 伊春市| 伊川县| 商都县| 河东区| 聂荣县| 绿春县| 南丰县| 五家渠市| 万源市| 金坛市| 隆化县| 兴宁市| 衢州市| 咸阳市| 兴安盟| 东平县| 改则县| 桦甸市|