我們通過與命令列與hdfs互動來了解它。hdfs還有許多其它介面,但是
對開發者來說,命令列是最簡單的,也是最熟悉的。
我們將在一台機器上執行hdfs,所以首先根據附錄a來搭建hadoop偽分
布式模式。以後我們會看如何在集群上執行hdfs並提供可靠性及容錯處理。
在偽分布式的配置中,有兩個屬性需要我們進一步解釋。第乙個是fs.defaultfs,
設定為hdfs://localhost/,它用來設定hadoop的預設檔案系統。使用uri來定義檔案
系統,這裡我們使用hdfs uri來設定hdfs預設使用hdfs。hdfs守護程序會根據
這個屬性來決定hdfs namenode 的主機及其埠。我們將在本地執行它,使用預設
的hdfs埠8020。hdfs客戶端也會根據這個屬性來算出namenode的執行位址並
連線它。
我們設定的第二個屬性,dfs.replication,這個值設定為1,所以hdfs不會使用
預設的複製因子(預設為3)來複製檔案系統的block。當只執行乙個datanode時,
hdfs不能複製block到三個datanode,所以它會一直警告block正在被複製。這個配置
可以解決這個問題。
基本檔案系統操作
檔案系統已經準備就緒,一般的檔案系統操作我們都可以做,比如讀取檔案,建立目錄,
移動檔案,刪除資料,列表目錄等。你可以輸入hadoop fs -help來得到每乙個命令的
詳細幫助。
讓我們以從本地檔案系統拷貝乙個檔案到hdfs開始:
% hadoop fs -copyfromlocal input/docs/quangle.txt \
hdfs://localhost/user/tom/quangle.txt
這個命令呼叫hadoop的檔案系統命令fs,它支援若干子命令----這個例子中,我們執行
-copyfromlocal。本地檔案quangle.txt被拷貝到hdfs例項上的/usr/tom/下。實際上,我們可以
省略uri而使用core-site.xml中配置的預設uri:
% hadoop fs -copyfromlocal input/docs/quangle.txt /user/tom/quangle.txt
我們也可以使用相對路徑,把檔案拷貝到我們的使用者主目錄,這個例子中是/usr/tom:
% hadoop fs -copyfromlocal input/docs/quangle.txt quangle.txt
我們把檔案拷回本地檔案系統中檢視它們是否一致:
% hadoop fs -copytolocal quangle.txt quangle.copy.txt
% md5 input/docs/quangle.txt quangle.copy.txt
md5 (input/docs/quangle.txt) = e7891a2627cf263a079fb0f18256ffb2
md5 (quangle.copy.txt) = e7891a2627cf263a079fb0f18256ffb2
md5摘要一致,也就是說這個檔案從hdfs一日遊中活了下來並且毫髮無損。
最後,我們看一下hdfs檔案檢視。我們建立乙個目錄來看它在列表中是如何顯示的:
% hadoop fs -mkdir books
% hadoop fs -ls .
found 2 items
drwxr-xr-x - tom supergroup 0 2014-10-04 13:22 books
-rw-r--r-- 1 tom supergroup 119 2014-10-04 13:21 quangle.txt
這個返回的資訊和unix命令ls -l返回的很相似,只有一點很少的不同。第一列顯示檔案模式。
第二列是這個檔案的複製因子(unix檔案系統所沒有的)。記住我們設定了預設的複製因子為1,
這就是是我們為什麼在這裡看到了這個值。對於目錄來說這個值是空的,因為對於目錄來說沒有複製
品這個概念----目錄是做為元資料儲存在namenode而不是datanode裡。第
三、四列顯示檔案的所有
者及所屬組。第五列是檔案的大小,單位是byte,對於目錄來說是0.第
六、七列是最後修改日期和時間。
最後,第八列是檔案或目錄的名稱。
第三章 第三節(補充) 列表排序
零 排序快速講解 本節是補充內容,主要講解列表的排序,列表排序有兩種,分別是 list.sort 和sorted 我們來分別看一下。list.sort sort 直接修改列表,返回值為none。語法如下 list sort key reverse 其中key代表用作排序比較的鍵函式,即自定義排序規則...
python小白之路 第三章函式第三節
功能 能夠生成乙個指定的數列 引數 start 開始的值,預設為0 stop 結束的值 step 可選,步進值,預設為1 返回值 可迭代的物件,數字序列 功能 可以接收多個可迭代的物件,然後把每個可迭代物件中的第i個元素組合在一起成為乙個元組,這些元組形成乙個新的迭代器 引數 iterables 任...
作業系統複習 第三章 第三節 程序排程
一 處理機排程的基本概念 1.排程的型別 低階排程 程序 或核心級執行緒 排程 中級排程 記憶體排程 2.排程的效能準則 響應時間 分時系統 優先順序 計算 不同排程策略下,一批作業的平均周轉時間 排程演算法本身 3.程序排程的時機 when 當前程序執行 就緒 當前程序執行 阻塞 4.程序排程的方...