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...