2022-11-17
集群 搭建
啟動集群
現在,集群已經搭建成為了高可用的集群了。在啟動集群之前,我們需要先明確一件事情: 集群現在的狀態有兩種:
這個集群我之前使用過,NameNode已經存儲有數據了(fsimage和edits已生成)
這個集群是我新搭建的,我直接搭建集群的時候就搭建的高可用的集群,之前從來沒有啟動過
如果你是第一種情況,請跳轉到 普通集群轉HA
如果你是第二種情況,請跳轉到 直接搭建HA
啟動: 普通集群轉HA
# 1. 啟動集群的JournalNode服務。
# 注意事項: 如果之前集群還在運行,需要先將其停止!使用命令 stop-dfs.sh
[root@qianfeng01 ~]# hdfs --daemon start journalnode
[root@qianfeng02 ~]# hdfs --daemon start journalnode
[root@qianfeng03 ~]# hdfs --daemon start journalnode
# 2. 啟動以前節點上的namenode進程
[root@qianfeng01 ~]# hdfs --daemon start namenode
# 3. 在新的namenode節點上拉取鏡像文件
[root@qianfeng02 ~]# hdfs namenode -bootstrapStandby
# 4. 同步日志到journalnode集群上,再啟動集群
# 先關namenode
[root@qianfeng01 ~]# hdfs --daemon stop namenode
# 再同步日志
[root@qianfeng01 ~]# hdfs namenode -initializeSharedEdits
# 5. 格式化zkfc
# 5.1. 前提QuorumPeerMain服務必須處于開啟狀態,客戶端zkfc才能格式化成功
[root@qianfeng01 ~]# zkServer.sh start
[root@qianfeng02 ~]# zkServer.sh start
[root@qianfeng03 ~]# zkServer.sh start
# 5.2. 選擇其中一個namenode節點進行格式化zkfc
[root@qianfeng01 ~]# hdfs zkfc -formatZK
# 6. 你就可以快樂的開啟HA集群進行測試了
[root@qianfeng01 ~]# start-all.sh
# 查看NameNode的狀態
[root@qianfeng01 ~]# hdfs haadmin -getServiceState nn1
# 注意: 以后開HA集群時,要先開zookeeper服務,再開HDFS。
# 1. 啟動三個節點上的journalnode服務
[root@qianfeng01 ~]# hdfs --daemon start journalnode
[root@qianfeng02 ~]# hdfs --daemon start journalnode
[root@qianfeng03 ~]# hdfs --daemon start journalnode
# 2. 格式化namenode
# - 先刪除所有節點的${hadoop.tmp.dir}/tmp/的數據(可選,這一步表示棄用fsimage.)
# - 選擇其中一個namenode進行格式化
[root@qianfeng01 ~]# hdfs namenode -format
# - 并啟動namenode進程
[root@qianfeng01 ~]# hdfs --daemon start namenode
# 3. 在另一臺namenode上拉取已格式化的那臺機器的鏡像文件(數據的一致性)
[root@qianfeng02 ~]# hdfs namenode -bootstrapStandby
# 4. 然后關閉已經啟動的namenode
[root@qianfeng01 ~]# hdfs --daemon stop namenode
# 5. 格式化zkfc
# 5.1. 前提QuorumPeerMain服務必須處于開啟狀態,客戶端zkfc才能格式化成功
[root@qianfeng01 ~]# zkServer.sh start
[root@qianfeng02 ~]# zkServer.sh start
[root@qianfeng03 ~]# zkServer.sh start
# 5.2. 選擇其中一個namenode節點進行格式化zkfc
[root@qianfeng01 ~]# hdfs zkfc -formatZK
# 6. 你就可以快樂的開啟HA集群進行測試了
[root@qianfeng01 ~]# start-all.sh
# 注意:以后開HA集群時,要先開zookeeper服務,再開HDFS。
自動容災測試
由于CentOS7的minimal版本缺少容災切換ActiveNameNode節點時所需要的組件,因此需要手動安裝一下:
yum install -y psmisc
1. 首先查看當前活躍的Active節點是誰
2. Kill掉活躍節點上的NameNode進程,模擬宕機
3. 觀察另外一個節點,是否已經變成Active的狀態
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號