亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

分布式文件系統-HDFS

系統 1571 0

HDFS

? ?Hadoop的核心就是HDFS與MapReduce。那么HDFS又是基于GFS的設計理念搞出來的。

? ?HDFS全稱是Hadoop Distributed System。HDFS是為以流的方式存取大文件而設計的。適用于幾百MB,GB以及TB,并寫一次讀多次的場合。而對于低延時數據訪問、大量小文件、同時寫和任意的文件修改,則并不是十分適合。

?優點:

? ? ? 1)適合存儲非常大的文件

? ? ? 2)適合流式數據讀取,即適合“只寫一次,讀多次”的數據處理模式

? ? ? 3)適合部署在廉價的機器上

缺點:

? ? ? 1)不適合存儲大量的小文件,因為受Namenode內存大小限制

? ? ?2)不適合實時數據讀取,高吞吐量和實時性是相悖的,HDFS選擇前者

? ? ?3)不適合需要經常修改數據的場景

? ?數據塊:

? ? ?每個磁盤都有默認的數據塊大小,一般就是521字節。這是磁盤進行數據讀寫的最小單位。HDFS同樣也有塊(block)的概念,但是大得多,有64MB。與單一磁盤上的文件系統一樣,HDFS上的文件也被劃分為塊大小的多個分塊。但是還是有所不同,比如HDFS中小于一個塊大小的文件不會占據整個塊的空間。

? ? 對分布式文件系統中的快進行抽象的好處:

? ? 1)一個文件的大小可能會大于網絡中任意一個磁盤的容量,文件的所有塊并不需要存儲在同一個磁盤上,因此可以利用集群上的任意一個磁盤進行存儲,但是對于HDFS來說,它是存儲了一個文件。

? ? ? ? (這不就正是我們要的效果嗎)?

? ? 2)以抽象塊為存儲單元,簡化了設計。還方便塊的備份。

?

?

? ? 分布式文件系統-HDFS

?

? ? ? ? ?HDFS的架構如上圖所示,總體上采用了 Master/Slave 的架構,主要有以下4個部分組成:

? ? ? ?1、Client

? ? ? ? ? ? 客戶端,就是我們通過調用接口實現的代碼。

? ? ? ?2、NameNode

? ? ? ? ? ?整個HDFS集群只有一個NameNode,它存儲整個集群文件分別的元數據信息。這些信息以fsimage和editlog兩個文件存儲在本地磁盤,Client通過這些元數據信息可以找到相應的文件。此外,NameNode還 ? ? ?負責監控DataNode的健康情況,一旦發現DataNode異常,就將其踢出,并拷貝其上數據至其它DataNode。

? ? ? 3、Secondary NameNode

? ? ? ? ? Secondary NameNode負責定期合并NameNode的fsimage和editlog。這里特別注意,它不是NameNode的熱備,所以NameNode依然是Single Point of Failure。它存在的主要目的是為了分擔一部分 ? ? ? ? ? ? NameNode的工作(特別是消耗內存的工作,因為內存資源對NameNode來說非常珍貴)。

? ? ? 4、DataNode

? ? ? ? ? ?DataNode負責數據的實際存儲。當一個 文件上傳 至HDFS集群時,它以Block為基本單位分布在各個DataNode中,同時,為了保證數據的可靠性,每個Block會同時寫入多個DataNode中(默認為3) ??

?

? ? ? 那么文件如何存儲的呢?

? ? ?要存儲的文件會分成很多塊,存到Datanode里。分塊的原則:除了最后一個數據塊,其它數據塊的大小相同,一般為64MB or 128MB。?每個數據塊有副本(一般為3):副本多了浪費空間。?

? ? 副本存儲:在大多數情況下,副本系數是3,HDFS的存放策略是將一個副本存放在本地機架的節點上,一個副本放在同一機架的另一個節點上,。

? ?? HDFS通信協議?

? ? ?所有的 HDFS 通訊協議都是構建在 TCP/IP 協議上。客戶端通過一個可 配置的端口連接到 Namenode , 通過 ClientProtocol 與 Namenode 交互。而 Datanode 是使用 DatanodeProtocol 與 Namenode 交互。再設計上, DataNode 通過周期性的向 NameNode 發送心跳和數據塊來保持和 NameNode 的通信,數據塊報告的信息包括數據塊的屬性,即數據塊屬于哪 個文件,數據塊 ID ,修改時間等, NameNode 的 DataNode 和數據塊的映射 關系就是通過系統啟動時 DataNode 的數據塊報告建立的。從 ClientProtocol 和 Datanodeprotocol 抽象出一個遠程調用 ( RPC ), 在設計上, Namenode 不會主動發起 RPC , 而是是響應來自客戶端和 Datanode 的 RPC 請求。?
? ? (這個在我們進行hadoop文件配置的時候就可以感受到,都是通過一個Ip地址加上一個端口號來訪問對方的)

? ? ? 文件讀取的過程如下:

  1. 使用HDFS提供的客戶端開發庫Client,向遠程的Namenode發起RPC請求;
  2. Namenode會視情況返回文件的部分或者全部block列表,對于每個block,Namenode都會返回有該block拷貝的DataNode地址;
  3. 客戶端開發庫Client會選取離客戶端最接近的DataNode來讀取block;如果客戶端本身就是DataNode,那么將從本地直接獲取數據.
  4. 讀取完當前block的數據后,關閉與當前的DataNode連接,并為讀取下一個block尋找最佳的DataNode;
  5. 當讀完列表的block后,且文件讀取還沒有結束,客戶端開發庫會繼續向Namenode獲取下一批的block列表。
  6. 讀取完一個block都會進行checksum驗證,如果讀取datanode時出現錯誤,客戶端會通知Namenode,然后再從下一個擁有該block拷貝的datanode繼續讀。

? ? ?寫入文件的過程如下:

  1. 使用HDFS提供的客戶端開發庫Client,向遠程的Namenode發起RPC請求;
  2. Namenode會檢查要創建的文件是否已經存在,創建者是否有權限進行操作,成功則會為文件創建一個記錄,否則會讓客戶端拋出異常;
  3. 當 客戶端開始寫入文件的時候,開發庫會將文件切分成多個packets,并在內部以數據隊列"data queue"的形式管理這些packets,并向Namenode申請新的blocks,獲取用來存儲replicas的合適的datanodes列表, 列表的大小根據在Namenode中對replication的設置而定。
  4. 開始以pipeline(管道)的形式將packet寫入所 有的replicas中。開發庫把packet以流的方式寫入第一個datanode,該datanode把該packet存儲之后,再將其傳遞給在此 pipeline中的下一個datanode,直到最后一個datanode,這種寫數據的方式呈流水線的形式。
  5. 最后一個datanode成功存儲之后會返回一個ack packet,在pipeline里傳遞至客戶端,在客戶端的開發庫內部維護著"ack queue",成功收到datanode返回的ack packet后會從"ack queue"移除相應的packet。
  6. 如 果傳輸過程中,有某個datanode出現了故障,那么當前的pipeline會被關閉,出現故障的datanode會從當前的pipeline中移除, 剩余的block會繼續剩下的datanode中繼續以pipeline的形式傳輸,同時Namenode會分配一個新的datanode,保持 replicas設定的數量。

分布式文件系統-HDFS


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 激情久久久久久久久久久 | 国外欧美一区另类中文字幕 | 欧美精品在线一区二区三区 | 波多野结衣中文字幕一区二区三区 | 黄在线免费看 | 亚洲综合色网站 | 国产专区自拍 | 亚洲成a人片在线v观看 | 最新日韩在线 | 成人999 | 九色视频网址 | 久久久久国产一级毛片高清板 | 97看剧网| 久久国产精品久久精品国产 | 国产永久免费爽视频在线 | 亚洲精品久久久久综合中文字幕 | 久久久国产一区二区三区 | 免费国产成人综合 | 国产欧美一区二区三区观看 | 狠狠狠地啪香蕉 | 久久久亚洲 | 中文偷拍视频在线观看 | 日韩香蕉网 | 91精品啪在线观看国产老湿机 | 欧美日韩国产精品综合 | 亚洲免费视频观看 | 国产亚洲精品久久久久久小说 | 欧美aav | 国产人成久久久精品 | 人人爱天天做夜夜爽2020麻豆 | 欧美另类亚洲 | 91久久精品 | 牛牛影视免费观看成人 | 久久久久久国产精品免费免 | 美女在线看永久免费网址 | 日韩成人免费在线视频 | 免费视频成人国产精品网站 | 99久久精品久久久久久清纯 | 日本久久久久中文字幕 | 99色这里只有精品 | 99久久国产综合精品成人影院 |