2016-04-24 251 views
0

我這樣做:hadoop fs -ls /HDFS:刪除目錄

它顯示我所有下/已Hadoop分佈式文件系統(HDFS),這是目錄:

drwxr-xr-x - hduser supergroup   0 2016-04-23 02:08 /etc 
drwxr-xr-x - hduser supergroup   0 2016-04-23 03:21 /home 
drwxr-xr-x - hduser supergroup   0 2016-04-23 03:15 /sqoop 
drwxr-xr-x - hduser supergroup   0 2016-04-24 02:28 /sqooptest 
drwx-wx-wx - hduser supergroup   0 2016-04-08 22:23 /tmp 
drwxr-xr-x - hduser supergroup   0 2016-04-25 00:50 /user 
drwxr-xr-x - hduser supergroup   0 2016-04-08 22:33 /usr 
drwxr-xr-x - hduser supergroup   0 2016-04-24 02:33 /var 

是正確的嗎?如果是這樣,我想知道如果我這樣做會發生什麼:

hadoop fs -rm -r /etc /home /sqoop /sqooptest /tmp /usr /var 

這基本上消除了所有這些目錄(與/user的例外,因爲我需要它)。會造成問題嗎?如果是這樣,什麼?我想要一個乾淨的石板,所以我想刪除HDFS的一切。這是我的sqoop的東西。

我只是不希望我的電腦崩潰。

我還沒有-rm -r因爲我需要專家的意見。

Thnx提前。

+0

它看起來像你的本地文件系統,而不是HDFS。要獲得HDFS中的文件列表,您應該嘗試運行'hadoop fs -ls hdfs:// localhost:<您的hdfs端口here> /'。檢查此主題的更多信息https://stackoverflow.com/questions/15801444/hadoop-fs-commands-are-showing-the-local-filesystem-not-the-hdfs –

回答

0

乍一看看起來很好。

原因-rm -r是合適的可怕的是,這是一個你真的不想搞砸的命令,因爲它會刪除你開始下面的所有東西。 在-rm命令中表示「遞歸」,換句話說,該目錄中的所有內容以及所有文件和目錄都包含在內。如果目錄「foo」包含「bar」和「bar」包含「fubar」並且包含文件「do-not-delete-on-pain-of-death.txt」,則您將擁有包含.txt文件的路徑,如/foo/bar/fubar/ 。請注意,如果您運行hadoop fs -rm -r /foo,則會吹走foo以及下面的所有內容。

你真的不想要做的是類似於hadoop fs -rm -r /etc/sqoop - 請參閱我如何錯誤地在/sqoop之間放置空格?這將是不好的,因爲它說刪除/etc然後刪除/(root)下的所有內容,此時您覺得Hadoop的垃圾箱非常有希望運行。

因此,假設你可以參與和在/etc /home /sqoop /sqooptest /tmp /usr /var之下的所有東西,你的命令就可以了。

但是,如果這個模糊不清,或者你不確定,就創建一個像「temptest」這樣的目錄,並在下面創建一個你不想刪除的目錄下的子目錄。 rm -r是文件系統命令的核彈。確保你知道如何關鍵:-)。不要過於警惕或任何...