2016-09-29 242 views

回答

2

Hadoop的文件系統,HDFS是一次寫入,多次讀取文件系統。我們無法編輯HDFS中的任何文件,如果需要,我們可以追加。這個分佈式文件系統專爲處理大量數據而設計。 VIM,vi,nano,gedit等都是unix文件編輯器,只能用於編輯Unix文件系統中的文件。 HDFS基本上是虛擬文件系統,我們使用帶有HDFS命令的HDFS URI訪問文件系統。當我們讀取hdfs位置/ user/user1中的文件時,實際的URI是hdfs:// namenode:port/user/user1。我們不能使用普通的unix文件系統命令來訪問hadoop文件系統。我們有hadoop文件系統命令和相關的api來訪問hadoop文件系統。 hadoop的文件系統存儲在底層unix服務器的磁盤中,但它具有獨立的元數據和根據HDFS體系結構存儲的塊。

HDFS文件系統結構和格式相比UNIX文件系統完全不同。由於該系統旨在處理大量數據,因此不會添加編輯選項以避免編輯大量文件的開銷。如果您瞭解了HDFS的體系結構以及文件的存儲方式,您將清楚地知道爲什麼編輯文件的選項不存在於hdfs中。

追加東西一個文件都有,因爲它不會涉及完整的文件和文件元數據的變化更小的開銷。但是修改文件中的某些內容是一項巨大的開銷,因爲它涉及數據的完整修改以及相關的元數據。

1

可以複製this 5 line script並使用

hvim <your filename> 

和腳本代碼:

hadoop fs -text $1>hvim.txt 
vim hvim.txt 
hadoop fs -rm -skipTrash $1 
hadoop fs -copyFromLocal hvim.txt $1 
rm hvim.txt