溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HDFS命令行接口的示例分析

發(fā)布時(shí)間:2021-11-08 15:07:38 來(lái)源:億速云 閱讀:114 作者:小新 欄目:云計(jì)算

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

現(xiàn)在我們將通過(guò)命令行與HDFS交互。HDFS還有很多其他接口,但命令行是最簡(jiǎn)單的,同時(shí)也是許多開(kāi)發(fā)者最熟悉的。

在我們?cè)O(shè)置偽分布配置時(shí),有兩個(gè)屬性需要進(jìn)一步解釋。首先是fs.default.name,設(shè)置為hdfs://localhost/, 用來(lái)為Hadoop設(shè)置默認(rèn)文件系統(tǒng)。文件系統(tǒng)是由URI指定的,這里我們已使用了一個(gè)hdfs URI 來(lái)配置HDFS為Hadoop的默認(rèn)文件系統(tǒng)。HDFS的守護(hù)程序?qū)⑼ㄟ^(guò)這個(gè)屬性來(lái)決定HDFS名稱節(jié)點(diǎn)的宿主機(jī)和端口。我們將在localhost上運(yùn)行,默認(rèn)端口為8020。這樣一來(lái),HDFS用戶將通過(guò)這個(gè)屬性得知名稱節(jié)點(diǎn)在哪里運(yùn)行以便于連接到它。

第二個(gè)屬性dfs.replication,我們?cè)O(shè)為1,這樣一來(lái),HDFS就不會(huì)按默認(rèn)設(shè)置將文件系統(tǒng)塊復(fù)制3份。在單獨(dú)一個(gè)數(shù)據(jù)節(jié)點(diǎn)上運(yùn)行時(shí),HDFS無(wú)法將塊復(fù)制到3個(gè)數(shù)據(jù)節(jié)點(diǎn)上,所以會(huì)持續(xù)警告塊的副本不夠。此設(shè)置可以解決這個(gè)問(wèn)題。

基本文件系統(tǒng)操作

文件系統(tǒng)已經(jīng)就緒,我們可以執(zhí)行所有其他文件系統(tǒng)都有的操作,例如,讀取文件,創(chuàng)建目錄,移動(dòng)文件,刪除數(shù)據(jù),列出索引目錄,等等。輸入hadoop fs -help命令即可看到所有命令詳細(xì)的幫助文件。

首先將本地文件系統(tǒng)的一個(gè)文件復(fù)制到HDFS:

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

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

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

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

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

我們把文件復(fù)制回本地文件系統(tǒng),看看是否一樣:

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分析結(jié)果是一樣的,表明這個(gè)文件在HDFS之旅中得以幸存并完整。

最后,我們看一下HDFS文件列表。我們創(chuàng)建一個(gè)目錄來(lái)看看它在列表中如何顯示:

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 

返回的信息結(jié)果與Unix命令ls -l的輸出非常相似,僅有細(xì)微差別。第一列顯示的是文件格式。第二列是這個(gè)文件的副本數(shù)(這在Unix文件系統(tǒng)是沒(méi)有的)。由于我們?cè)O(shè)置的默認(rèn)副本數(shù)在網(wǎng)站范圍內(nèi)為1,所以這里顯示的也都是1。這一列的開(kāi)頭目錄欄是空的,因?yàn)楦北镜母拍畈](méi)有應(yīng)用-- 目錄是作為元數(shù)據(jù)并存在名稱節(jié)點(diǎn)中的,而非數(shù)據(jù)節(jié)點(diǎn)。第三列和第四列顯示文件的所屬用戶和組別。第五列是文件的大小,以字節(jié)顯示,目錄大小為0。第六列和第七列是文件的最后修改日期與時(shí)間。最后的第八列是文件或目錄的絕對(duì)路徑。

HDFS中的文件許可

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

共有三種形式的許可:讀取許可(r)、寫(xiě)入許可(w)和執(zhí)行許可(x)。讀取文件或列出目錄內(nèi)容時(shí)需要讀取許可。寫(xiě)入一個(gè)文件,或是在一個(gè)目錄上創(chuàng)建或刪除文件或目錄,需要寫(xiě)入許可。對(duì)于文件而言執(zhí)行許可可以忽略因?yàn)镠DFS中不能執(zhí)行文件(與POSIX不同),但在訪問(wèn)一個(gè)目錄的子項(xiàng)時(shí)是需要的。

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

客戶端的標(biāo)識(shí)是通過(guò)它正在運(yùn)行的進(jìn)程的username(名稱)和groups(組別)來(lái)確定的。由于客戶端是遠(yuǎn)程的,任何人都可以簡(jiǎn)單地在遠(yuǎn)程系統(tǒng)上創(chuàng)建一個(gè)賬戶來(lái)進(jìn)行訪問(wèn)。因此,許可只能在一個(gè)合作的團(tuán)體中的用戶中使用,作為共享文件系統(tǒng)資源和防止數(shù)據(jù)意外損失的機(jī)制,而不能在一個(gè)敵意的環(huán)境中保護(hù)資源。但是,除去這些缺點(diǎn),為防止用戶或自動(dòng)工具及程序意外修改或刪除文件系統(tǒng)的重要部分,使用許可還是值得的(這也是默認(rèn)的配置,參見(jiàn)dfs.permissions屬性)。

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

這里有一個(gè)超級(jí)用戶的概念,超級(jí)用戶是名稱節(jié)點(diǎn)進(jìn)程的標(biāo)識(shí)。對(duì)于超級(jí)用戶,系統(tǒng)不會(huì)執(zhí)行任何許可檢查。

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

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI