在centos環境下搭建高可用性hdfs (ha) 集群,需要配置兩個namenode節點,利用zookeeper進行狀態監控,并配置journalnode實現元數據同步。以下步驟詳細闡述了搭建過程:
一、前期準備
- 集群規劃: 確定集群中每個節點的角色 (NameNode, Secondary NameNode, DataNode) 及其網絡配置。 確保網絡連接暢通,并預留足夠的資源。
- 備份配置: 備份現有的hdfs配置文件 (hdfs-site.xml, core-site.xml 等),以便在必要時回滾到非HA模式。
二、配置HDFS HA
- 修改hdfs-site.xml: 在每個NameNode節點上修改hdfs-site.xml 文件,添加或修改以下配置項 (根據實際情況調整主機名和端口號):
<property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>master:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>slave1:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>master:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>slave1:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/hadoop-sny/bigdata/dfs/journal/data</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property>
其中,master 和 slave1 替換為實際的NameNode主機名,slave2 為JournalNode主機名。 確保JournalNode的端口號 (8485) 與配置一致。
- 修改core-site.xml: 確保core-site.xml 文件中配置了正確的HDFS文件系統路徑 (fs.defaultFS) 等必要屬性。
三、配置zookeeper
在所有參與HA的節點上安裝并配置ZooKeeper。ZooKeeper用于協調NameNode的活動和故障轉移。 這部分配置細節取決于你選擇的ZooKeeper安裝方式和版本。
四、啟動HDFS集群
- 格式化NameNode: 在其中一個NameNode節點上執行 hdfs namenode –format 命令進行格式化 (僅需執行一次)。
- 啟動HDFS: 使用 start-dfs.sh 腳本啟動整個HDFS集群。
五、驗證高可用性
- 檢查狀態: 使用 hdfs dfsadmin -report 命令檢查集群狀態,確保兩個NameNode都處于活動狀態 (Active 或 Standby)。
- 模擬故障: 模擬其中一個NameNode節點故障 (例如,停止其服務),觀察備用NameNode是否能夠自動接管。
六、關鍵注意事項
- JournalNode配置: JournalNode集群的正確配置對于NameNode之間的數據一致性至關重要。確保JournalNode節點數量滿足高可用性要求,并具有足夠的存儲空間和帶寬。
- 網絡連接: 確保所有節點之間網絡連接穩定可靠,避免網絡故障影響HA功能。
- 防火墻: 確保防火墻允許HDFS和ZooKeeper所需的端口通信。
- 監控: 定期監控NameNode和JournalNode的狀態,及時發現并解決潛在問題。
此步驟僅提供基本配置,實際應用中可能需要根據具體環境進行調整。 建議參考Hadoop官方文檔獲取更詳細的配置信息。