什麼是HDFS聯合會?

概觀: 我們都知道的Hadoop的HDFS和的特點. 在本文中,我們將談談HDFS聯邦,這有助於我們增強現有HDFS架構. 它提供了空間和存儲之間的明確分離從而使得可擴展性和隔離在群集級別.

介紹: Hadoop的聯合分離 命名空間 存儲層. 它使塊存儲層. 它還擴展現有HDFS集群的架構,以允許新的實現和使用案例. 當前的HDFS架構有兩層 -

  • 命名空間 - 這一層管理文件, 目錄和塊. 該層支持基本的文件系統操作例如. 文件上市, 創建文件, 文件的修改和刪除文件和文件夾.
  • 塊存儲 - 這一層有兩部分 -
    • 塊管理 這種管理集群中的數據節點,並提供諸如創建操作, 缺失, 修改和搜索. 它也需要複製管理的護理.
    • 物理存儲 這個存儲塊,並為讀或寫操作訪問.
An HDFS cluster

一個HDFS集群

Figure 1: 一個HDFS集群

在當前的HDFS架構, 我們為它是由一個單一的名稱節點管理的整個群集只有一個命名空間. 使用這種方法就變得更容易實現的HDFS集群. 這種架構分層工作正常,對小型的配置而對於大型組織在需要以較快的速度被照顧的數據量巨大, 例如. 雅虎和Facebook發現這種方法有一定的局限性這是由Hadoop的處理聯合會. 這樣的Hadoop聯合會可以定義為高級架構,以克服當前HDFS實施的限制.

讓我們檢查的局限性解釋如下 -

  • 緊密耦合的塊存儲和命名空間 - 在現有的結構的塊存儲和命名空間是緊耦合的,這使得有挑戰性名稱節點的替代實現,並限制其他服務直接使用塊存儲.
  • 命名空間可擴展性 - 在HDFS集群通過增加數據節點水平縮放,但我們不能更多空間到現有群集添加水平. 我們可以命名空間垂直縮放單一的NameNode. 名稱節點存儲其存儲器中的完整文件系統元數據,限制塊的數目, 文件和目錄需要被容納於單個名稱節點的存儲器中的文件系統上的支持.
  • 性能 - 當前文件系統操作被限制於可以通過一個單一的名稱節點的這在目前支撐 60000 並發任務. 但是,新的未來地圖Apache的減少將有超過一支持 100000 並發任務,因此將需要多個節點.
  • 隔離 - 在一般的HDFS部署可在在一個單一集群由多個組織共享的多租戶環境. 在此設置一個單獨的名稱空間是不可能的一個應用程序或一個組織.

HDFS聯合會:

Hadoop的聯合允許水平擴展的名稱服務. 它使用幾個namenodes或命名空間它們是彼此獨立的. 這些都是獨立namenodes 聯合 即. 它們不要求 間協調. 這些數據節點可以被所有namenodes作為通用存儲. 每個數據節點與集群中的所有namenodes註冊. 這些數據節點發送定期報告和響應的命令,從名字節點. 我們有一個塊池是屬於一個單一命名空間的一組塊. 在集群, 數據節點存儲所有塊池塊. 每個塊池獨立管理. 這使得名字空間來生成新塊的塊的IDS沒有通知其他命名空間. 如果一個名稱節點因為任何原因失敗, 該Datanode的不斷從其他namenodes服務.

一個命名空間和塊統稱 命名空間卷. 當一個命名空間或一個NameNode會被刪除的數據節點相應的塊池將被自動刪除. 在群集向上漸變的過程, 每個命名空間容量升級為單位.

An HDFS federation architecture

一個HDFS聯邦設計

Figure 2: 一個HDFS聯邦設計

Hadoop的聯盟的好處:

Hadoop的聯盟出現了一些好處和利益而被列為下 -

  • 可擴展性和隔離 - 多namenodes在文件系統命名空間水平最高可擴展至. 這實際上分隔用戶和應用程序的類別命名空間卷,並提供一個絕對的隔離.
  • 通用存儲服務 - 塊級池抽象允許該架構在塊存儲上構建新的文件系統. 我們可以很容易地構建塊存儲層上新的應用程序,而無需使用文件系統接口. 塊池的定制類別,也可以建立其與默認塊池不同.
  • 設計簡單 - Namenodes和命名空間是彼此獨立的. 幾乎沒有要求改變現有的名稱節點任何情況. 每個名字節點建立保持強勁. 聯合會還向後兼容. 它很容易與它沒有任何配置更改的工作現有的單節點部署集成.

配置HDFS聯合會:

Hadoop的聯邦結構被設計成這樣一種方式,集群中的所有節點都具有相同的結構. 配置在下面的步驟來進行 -

  • Step 1 - 以下參數需要在現有的配置中添加 -
    • nameservices - 此配置有逗號分隔NameServiceIDs列表. 此參數用於通過的Datanode確定集群中的所有namenodes.
  • Step 2 - 以下配置需要與相應的名稱服務ID為後綴到共用配置文件.
    • Namenode會
    • Secondary NameNode
    • BackupNode

兩個namenodes一個示例配置文件如下 -

Listing 1: 對於兩個節點的示例配置文件

[Code]

<組態>

<財產>

<名稱>dfs.nameservices</名稱>

<值>NS1,NS2</值>

</財產>

<財產>

<名稱>dfs.namenode.rpc-address.ns1</名稱>

<值>NN-主機1:6600</值>

</財產>

<財產>

<名稱>dfs.namenode.http-address.ns1</名稱>

<值>NN-主機1:8080</值>

</財產>

<財產>

<名稱>dfs.namenode.secondaryhttp-address.ns1</名稱>

<值>NHS-主機1:8080</值>

</財產>

<財產>

<名稱>dfs.namenode.rpc-address.ns2</名稱>

<值>NN-主機2:6600</值>

</財產>

<財產>

<名稱>dfs.namenode.http-address.ns2</名稱>

<值>NN-主機2:8080</值>

</財產>

<財產>

<名稱>dfs.namenode.secondaryhttp-address.ns2</名稱>

<值>NHS-主機2:8080</值>

</財產>

</組態>

[/Code]

格式化的Namenode: 讓我們的命令格式的NameNode.

  • Step 1 – 單個名稱節點可以使用下面的格式化 -

$HADOOP_USER_HOME /斌/ HDFS的NameNode -format [-叢集編號 <CLUSTER_ID>]

群集ID應該是唯一的,不能與其他任何退出集群ID衝突. 如果沒有提供, 一個唯一的群集ID在格式化時產生.

  • Step 2 - 其他名稱節點可以使用下面的命令進行格式化 -

$HADOOP_PREFIX_HOME /斌/ HDFS的NameNode -format -clusterId <CLUSTER_ID>

重要的是在這裡,這裡提到的集群ID應該在所提到的相同的那 步 1. 如果這兩個是不同的, 附加名稱節點將不會被聯合集群的一部分.

啟動和停止的群集: 讓我們檢查命令來啟動和停止集群.

  • 啟動集群 - 群集可以通過執行以下命令來啟動 -

$HADOOP_PREFIX_HOME /斌/ start-dfs.sh

  • 停止群集 - 群集可以通過執行以下命令停止 -

$HADOOP_PREFIX_HOME /斌/ start-dfs.sh

添加一個新的NameNode在現有的集群: 我們已經描述了多個名稱節點是在Hadoop的聯邦的心臟. 因此,了解步驟添加新名稱節點和橫向擴展是非常重要的.
需要以下步驟添加新namenodes -

  • 配置參數 - nameservices 需要在配置中添加.
  • NameServiceID 必須在配置中後綴
  • 有關的配置新的Namenode必須在配置文件中被加入.
  • 配置文件應當被傳播到集群中的所有節點.
  • 啟動新NameNode和輔助NameNode的
  • 刷新其他數據節點通過運行以下命令來接新添加的名稱節點 -

Ø$ HADOOP_PREFIX_HOME /斌/ HDFS dfadmin -refreshNameNode <datanode_host_name>:<datanode_rpc_port>

  • 上述命令必須與群集上的所有​​數據節點上執行.

Summary: HDFS聯合會已被引入來克服早期HDFS實施的限制. 在命名空間層添加可伸縮性HDFS聯邦設計的最重要的特徵. 但是HDFS聯合會也向後兼容, 所以單一的NameNode配置也將工作沒有任何變化.
讓我們總結一下下面的項目符號的形式,我們的討論

  • HDFS聯邦分離 NameNode的層存儲層.
  • HDFS聯合會旨在克服單個節點HDFS架構的限制,其中存儲可以擴展水平未命名空間.
  • HDFS聯合會想出了以下優點 -
    • 隔離
    • Scalability
    • 簡單設計
  • HDFS的配置非常簡單,也易於管理.

 

標籤:
============================================= ============================================== 在亞馬遜上購買最佳技術書籍,en,電工CT Chestnutelectric,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share