溫馨提示×

溫馨提示×

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

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

HDFS命令行接口的示例分析

發布時間:2021-11-08 15:07:38 來源:億速云 閱讀:147 作者:小新 欄目:云計算

小編給大家分享一下HDFS命令行接口的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

現在我們將通過命令行與HDFS交互。HDFS還有很多其他接口,但命令行是最簡單的,同時也是許多開發者最熟悉的。

在我們設置偽分布配置時,有兩個屬性需要進一步解釋。首先是fs.default.name,設置為hdfs://localhost/, 用來為Hadoop設置默認文件系統。文件系統是由URI指定的,這里我們已使用了一個hdfs URI 來配置HDFS為Hadoop的默認文件系統。HDFS的守護程序將通過這個屬性來決定HDFS名稱節點的宿主機和端口。我們將在localhost上運行,默認端口為8020。這樣一來,HDFS用戶將通過這個屬性得知名稱節點在哪里運行以便于連接到它。

第二個屬性dfs.replication,我們設為1,這樣一來,HDFS就不會按默認設置將文件系統塊復制3份。在單獨一個數據節點上運行時,HDFS無法將塊復制到3個數據節點上,所以會持續警告塊的副本不夠。此設置可以解決這個問題。

基本文件系統操作

文件系統已經就緒,我們可以執行所有其他文件系統都有的操作,例如,讀取文件,創建目錄,移動文件,刪除數據,列出索引目錄,等等。輸入hadoop fs -help命令即可看到所有命令詳細的幫助文件。

首先將本地文件系統的一個文件復制到HDFS:

1.  % hadoopfs -copyFromLocal input/docs/quangle.
txt hdfs://localhost/user/tom/quangle.txt 

該命令調用Hadoop文件系統的shell命令fs,提供一系列的子命令。在這里,我們執行的是-copyFromLocal。本地文件quangle.txt被復制到運行在localhost上的HDFS實體中的/user/tom/quangle.txt文件。其實我們可以省略URI的格式與主機而選擇默認設置,即省略hdfs://localhost,就像core-site.xml中指定的那樣。

1.  % hadoop fs -copyFromLocal input/docs/quangle.
txt /user/tom/quangle.txt 

也可以使用相對路徑,并將文件復制到home目錄,即/user/tom:

1.  % hadoop fs -copyFromLocal input/docs/quangle.txt quangle.txt 

我們把文件復制回本地文件系統,看看是否一樣:

1.      % hadoop fs -copyToLocal quangle.txt quangle.copy.txt  

2.  % md5 input/docs/quangle.txt quangle.copy.txt  

3.  MD5 (input/docs/quangle.txt) = a16f231da6b05e2ba7a339320e7dacd9  

4.  MD5 (quangle.copy.txt) = a16f231da6b05e2ba7a339320e7dacd9 

MD5分析結果是一樣的,表明這個文件在HDFS之旅中得以幸存并完整。

最后,我們看一下HDFS文件列表。我們創建一個目錄來看看它在列表中如何顯示:

1.  % hadoop fs -mkdir books  

2.  % hadoop fs -ls .  

3.  Found 2 items  

4.  drwxr-xr-x   - tom supergroup          0 
2009-04-02 22:41 /user/tom/books  

5.  -rw-r--r--   1 tom supergroup        118 
2009-04-02 22:29 /user/tom/quangle.txt 

返回的信息結果與Unix命令ls -l的輸出非常相似,僅有細微差別。第一列顯示的是文件格式。第二列是這個文件的副本數(這在Unix文件系統是沒有的)。由于我們設置的默認副本數在網站范圍內為1,所以這里顯示的也都是1。這一列的開頭目錄欄是空的,因為副本的概念并沒有應用-- 目錄是作為元數據并存在名稱節點中的,而非數據節點。第三列和第四列顯示文件的所屬用戶和組別。第五列是文件的大小,以字節顯示,目錄大小為0。第六列和第七列是文件的最后修改日期與時間。最后的第八列是文件或目錄的絕對路徑。

HDFS中的文件許可

HDFS對于文件及目錄有與POSIX非常相似的許可模式。

共有三種形式的許可:讀取許可(r)、寫入許可(w)和執行許可(x)。讀取文件或列出目錄內容時需要讀取許可。寫入一個文件,或是在一個目錄上創建或刪除文件或目錄,需要寫入許可。對于文件而言執行許可可以忽略因為HDFS中不能執行文件(與POSIX不同),但在訪問一個目錄的子項時是需要的。

每個文件和目錄都有一個所屬用戶、所屬組別和模式。這個模式是由所屬用戶的許可、組內其他成員的許可及其他用戶的許可組成。

客戶端的標識是通過它正在運行的進程的username(名稱)和groups(組別)來確定的。由于客戶端是遠程的,任何人都可以簡單地在遠程系統上創建一個賬戶來進行訪問。因此,許可只能在一個合作的團體中的用戶中使用,作為共享文件系統資源和防止數據意外損失的機制,而不能在一個敵意的環境中保護資源。但是,除去這些缺點,為防止用戶或自動工具及程序意外修改或刪除文件系統的重要部分,使用許可還是值得的(這也是默認的配置,參見dfs.permissions屬性)。

如果啟用了許可檢查,所屬用戶許可與組別許可都會被檢查,以確認用戶的用戶名與所屬用戶許可是否相同,確認他是否屬于此用戶組的成員;若不符,則檢查其他許可。

這里有一個超級用戶的概念,超級用戶是名稱節點進程的標識。對于超級用戶,系統不會執行任何許可檢查。

看完了這篇文章,相信你對“HDFS命令行接口的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女