HADOOP學習筆記(一) HDFS

2022-08-20 13:18:18 字數 2766 閱讀 9024

hdfs,它是乙個檔案系統,用於儲存檔案,通過目錄樹來定位檔案;其次,它是分布式的,由很多伺服器聯合起來實現其功能,集群中的伺服器有各自的角色。

hdfs的設計適合一次寫入,多次讀出的場景,且不支援檔案的修改。適合用來做資料分析,並不適合用來做網盤應用。

namenode

它維護著整個檔案系統的檔案資料夾樹,檔案/資料夾的元資訊和每個檔案相應的資料塊列表。

接收使用者的操作請求。

儲存某一時段namenode記憶體元資料資訊。

以上這些檔案是儲存在linux的檔案系統中。

datanode

secondarynamenode寫資料流程

1)客戶端向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。

2)namenode返回是否可以上傳。

3)客戶端請求第乙個 block上傳到哪幾個datanode伺服器上。

4)namenode返回3個datanode節點,分別為dn1、dn2、dn3。

5)客戶端請求dn1上傳資料,dn1收到請求會繼續呼叫dn2,然後dn2呼叫dn3,將這個通訊管道建立完成

6)dn1、dn2、dn3逐級應答客戶端

7)客戶端開始往dn1上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位,dn1收到乙個packet就會傳給dn2,dn2傳給dn3;dn1每傳乙個packet會放入乙個應答佇列等待應答

8)當乙個block傳輸完成之後,客戶端再次請求namenode上傳第二個block的伺服器。(重複執行3-7步)

讀資料流程

2)挑選一台datanode(就近原則,然後隨機)伺服器,請求讀取資料。

3)datanode開始傳輸資料給客戶端(從磁碟裡面讀取資料放入流,以packet為單位來做校驗)。

4)客戶端以packet為單位接收,先在本地快取,然後寫入目標檔案。

(1)-help:輸出這個命令引數

bin/hdfs dfs -help rm

(2)-ls

: 顯示目錄資訊

hadoop fs -ls /(

3)-mkdir

:在hdfs上建立目錄

hadoop fs -mkdir -p /aaa/bbb/cc/dd

(4)-movefromlocal從本地剪下貼上到hdfs

hadoop fs - movefromlocal /home/hadoop/a.txt /aaa/bbb/cc/dd

(5)-movetolocal:從hdfs剪下貼上到本地

hadoop fs - movetolocal /aaa/bbb/cc/dd /home/hadoop/a.txt((

7)-cat

:顯示檔案內容

(8)-tail

:顯示乙個檔案的末尾

hadoop fs -tail /weblog/access_log.1

(9)-text:以字元形式列印乙個檔案的內容

hadoop fs -text /weblog/access_log.1

(10)-chgrp 、-chmod、-chown

:linux檔案系統中的用法一樣,修改檔案所屬許可權

hadoop fs -chmod

666 /hello.txt

hadoop fs -chown someuser:somegrp /hello.txt

(11)-copyfromlocal:從本地檔案系統中拷貝檔案到hdfs路徑去

hadoop fs -copyfromlocal ./jdk.tar.gz /aaa/(

12)-copytolocal:從hdfs拷貝到本地

hadoop fs -copytolocal /aaa/jdk.tar

.gz(

13)-cp

:從hdfs的乙個路徑拷貝到hdfs的另乙個路徑

hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2

(14)-mv

:在hdfs目錄中移動檔案

hadoop fs -mv /aaa/jdk.tar.gz /(

hadoop fs -get /aaa/jdk.tar

.gz(

,...

hadoop fs -getmerge /aaa/log.* ./log.sum

(17)-put:等同於copyfromlocal

hadoop fs -put /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2

(18)-rm

:刪除檔案或資料夾

hadoop fs -rm -r /aaa/bbb/(

19)-rmdir

:刪除空目錄

hadoop fs -rmdir /aaa/bbb/ccc

(20)-df

:統計檔案系統的可用空間資訊

hadoop fs -df -h /(

21)-du統計資料夾的大小資訊

hadoop fs -du -s -h /aaa/*

(22)-count:統計乙個指定目錄下的檔案節點數量

hadoop fs -count /aaa/

(23)-setrep:設定hdfs中檔案的副本數量

hadoop fs -setrep 3 /aaa/jdk.tar.gz

詳見github:

hadoop學習筆記(HDFS)

hdfs的設計基礎與目標 1 硬體錯誤是常態,因此需要冗餘。2 為大資料而生,流式讀寫,批量讀取而非隨機讀寫。擅長資料分析而不是事務處理。3 大規模資料集。4 一次寫多次讀邏輯設計,即一旦寫入,只能讀,不能修改。5 程式才用 資料就近 原則分配節點執行。hdfs的可靠性 冗餘副本策略 機架策略 心跳...

hadoop學習筆記(二) HDFS

定義 hdfs hadoop distributed file system 它是乙個檔案系統,用於儲存檔案,通過目錄樹來定位檔案,它是分布式的,由很多伺服器聯合起來實現其功能。場景 適合一次寫入,多次讀出的場景,且不支援檔案的修改,適合用來做資料分析,不適合做網盤應用。優點 1.高容錯性 資料儲存...

hadoop學習筆記 HDFS原理

文章內容摘自書籍,網際網路的部落格的一些集合和個人的理解。hdfs原理 hadoop提供了可靠的共享儲存和分析的系統,hdfs實現儲存,mapreduce實現分析處理,這兩部分是hadoop的核心,由於hdfs是為了高資料吞吐量而優化的,是以高時間延遲為代價,所以要求低延遲的資料訪問應用不適合在hd...