帶你認識HDFS和如何創建3個節點HDFS集群
在本文中,大數據專家將為您介紹如何使用HDFS以及如何利用HDFS創建HDFS集群節點。
我們將從HDFS、Zookeeper、Hbase和OpenTSDB上的系列博客開始,了解如何利用這些服務設置OpenTSDB集群。在本文中,我們將探究HDFS。
HDFS
Hadoop分布式文件系統(HDFS)是一種基于Java的分布式文件系統,它具有容錯性、可伸縮性和易擴展性等優點,它可在商用硬件上運行,也可以在低成本的硬件上進行部署。HDFS是一個分布式存儲的Hadoop應用程序,它提供了更易訪問數據的接口。
架構
HDFS架構包含一個NameNode、DataNode和備用NameNode。
HDFS具有主/從架構。

NameNode:HDFS集群包含單個NameNode(主服務器),它管理文件系統命名空間并控制客戶端對文件的訪問權限。它維護和管理文件系統元數據;例如由哪些塊構成文件,以及存儲這些塊的數據節點。
DataNode:可以有多個DataNode,通常是集群中每個節點有一個DataNode,它負責管理運行節點的存儲訪問。HDFS中的DataNode存儲實際數據,可以添加更多的DataNode來增加可用空間。
備用NameNode :備用NameNode服務并非真正的備用NameNode,盡管名稱是稱為備用NameNode。具體來說,它并不為NameNode提供高可用性(HA)。
為什么需要備用NameNode?
- 備用NameNode記錄文件系統的修改痕跡,追加到本機文件系統文件的后面,作為修改日志。
- 啟動備用NameNode時,它會從映像文件fsimage中讀取HDFS狀態,然后啟用“編輯日志文件”對它進行編輯。
- 然后將新的HDFS狀態寫入fsimage,并使用“空編輯文件”啟動正常操作。
- 由于NameNode只在啟動時合并fsimage和編輯文件,所以在繁忙的集群中,隨著時間的推移,“編輯日志文件”會變得非常大。
- 大“編輯日志文件”的另一個副作用是:在下次重新啟動NameNode時,需要花費更長的時間。
- 備用NameNode定期合并fsimage和“編輯日志文件”,并將“編輯日志文件”的大小保持在限定范圍內。
- 備用NameNode通常在與主NameNode不同的計算機上運行,因為它的內存要求與主NameNode的相同。
關鍵特征
容錯:為了防止機器故障,可跨多個DataNode復制容錯數據,復制因子的默認值是3(如果有3個DataNode,每個塊至少存儲在三臺計算機上)。
可伸縮性- DataNode之間可實現直接數據傳輸,所以讀/寫次數應與DataNode的數量相匹配。
空間-需要更多的磁盤空間?只需添加更多DataNodes和再平衡。
行業標準-其他分布式應用程序均構建在HDFS之上(HBASE,Map-Reduction)。
HDFS是用來處理大數據集的,它具有write-once-read-many(一次寫-多次讀)的語義,不適合低延遲訪問。
數據結構
- 寫入HDFS的每個文件被分割為64MB或128MB大小的數據塊。
- 每個塊存儲在一個或多個節點上。
- 塊的每個副本均稱為副本。
分塊安置策略
- 第一副本放在本地節點上。
- 第二副本放在不同的機架上。
- 第三副本與第二副本放置在同一機架中。
設置HDFS集群
要創建HDFS集群,會用到Docker。
步驟
創建一個Docker群網絡。

NameNode
在VM1中為NameNode創建環境變量文件(namenode_env)。

在VM1上創建NameNode:

在所有3個VM中為DataNode創建環境變量文件(datanode_env)。

在VM1上創建DataNode1:

在VM2上創建DataNode 2:

在VM 3上創建DataNode 3。

在所有vms中,通過執行docker ps檢查所有容器是否已啟動并正常運行。
一旦所有容器均已啟動并運行,請轉到VM1,打開瀏覽器,打開http://localhost:50070/dfshealth.html#tab-datanode.將會看到如下輸出:

HDFS CLI

在本文中,我們研究了HDFS以及如何創建3個節點HDFS集群。在下一篇文章中,我們將關注Zookeeper,并創建一個Zookeeper集群。
原文標題:
An Introduction to HDFS
原文鏈接:
https://dzone.com/articles/an-introduction-to-hdfs
譯者
陳之炎,北京交通大學通信與控制工程專業畢業,獲得工學碩士學位,歷任長城計算機軟件與系統公司工程師,大唐微電子公司工程師,現任北京吾譯超群科技有限公司技術支持。目前從事智能化翻譯教學系統的運營和維護,在人工智能深度學習和自然語言處理(NLP)方面積累有一定的經驗。業余時間喜愛翻譯創作,翻譯作品主要有:IEC-ISO 7816、伊拉克石油工程項目、新財稅主義宣言等等,其中中譯英作品“新財稅主義宣言”在GLOBAL TIMES正式發表。能夠利用業余時間加入到THU 數據派平臺的翻譯志愿者小組,希望能和大家一起交流分享,共同進步