HDFS HA系列實驗之七 NN故障轉移處理

2021-06-22 01:00:06 字數 3572 閱讀 7374

nn是hdfs的核心,一旦破壞,hadoop整個系統將癱瘓。hadoop2.2.0提供了nn ha,提高了nn的可用性。但如果發生了nn故障轉移,那麼需要處理故障點。本實驗主要是針對nn故障轉移的幾種情況的處理:

實驗一:原active nn意外掛程式機或jvm溢位等原因造成,但原active nn檔案系統完好

實驗二:原active nn元資料損壞或重新部署新的nn

本實驗環境搭建指導:

hdfs ha系列實驗之二:ha+journalnode+zookeeper

: 根據上面相關資料重新配置ha+journalnode+zookeeper環境,並格式化後啟動,然後使用物理機192.168.100.111(機器名wyy)作為客戶端來訪問集群。

[hadoop@product201 hadoop220]$ bin/hdfs namenode -format

[hadoop@product201 hadoop220]$ bin/hdfs zkfc -formatzk

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode

[hadoop@product202 hadoop220]$ bin/hdfs namenode -bootstrapstandby

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode

[hadoop@product201 hadoop220]$ sbin/hadoop-daemons.sh start datanode

1:實驗一

客戶端通過http://product201:50070可以發現product201處於active狀態

客戶端通過http://product202:50070可以發現product202處於standby狀態

重啟product201(因為沒有zookeeper和jn程序在跑,可以直接重新啟動來模擬機器故障),這時:

客戶端通過http://product201:50070已經無法訪問

客戶端通過http://product202:50070可以發現product202處於active狀態

此時檔案操作正常

啟動product201的nn守護程序

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode

客戶端通過http://product201:50070可以發現product201處於standby狀態

客戶端通過http://product202:50070可以發現product202處於active狀態

此時檔案操作正常

在product202上kill dfszkfailovercontroller程序和namenode程序,模擬product202故障,

[hadoop@product202 hadoop220]$ jps

2374 namenode

2472 journalnode

2558 dfszkfailovercontroller

2930 jps

1706 quorumpeermain

[hadoop@product202 hadoop220]$ kill 2374

[hadoop@product202 hadoop220]$ kill 2558

[hadoop@product202 hadoop220]$ jps

2472 journalnode

2998 jps

1706 quorumpeermain

這時:客戶端通過http://product201:50070可以發現product201處於active狀態

客戶端通過http://product202:50070已經無法訪問

在客戶端上傳檔案

found 4 items

-rw-r--r--   3 hadoop supergroup  258570165 2014-02-23 15:21 /test/2013.txt

-rw-r--r--   3 hadoop supergroup   25721132 2014-02-23 15:28 /test/ip.txt

-rw-r--r--   3 hadoop supergroup    7118627 2014-02-23 16:42 /test/access_log.txt

-rw-r--r--   3 hadoop supergroup       1572 2014-02-23 17:07 /test/demo.txt

然後重啟product202

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode

[hadoop@product202 hadoop220]$ bin/hdfs haadmin -failover nn1 nn2

客戶端通過http://product201:50070可以發現product201處於standby狀態

客戶端通過http://product202:50070可以發現product202處於active狀態

可以發現客戶端新上傳的檔案在product202中可以瀏覽。

2:實驗二

在product201處於standby之後重啟,然後刪除hadoop的資料檔案來模擬實驗環境。

[hadoop@product201 hadoop220]$ rm -rf mydata logs

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product201 hadoop220]$ bin/hdfs namenode -bootstrapstandby

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode

客戶端通過http://product201:50070可以發現product201處於standby狀態

客戶端通過http://product202:50070可以發現product202處於active狀態

[hadoop@product201 hadoop220]$ bin/hdfs haadmin -failover nn2 nn1

將product201切換成active nn後,通過http://product201:50070可以瀏覽hdfs中的檔案。

tips:

bin/hdfs namenode -bootstrapstandby只是在最初同步元資料的時候使用

C C 面試之演算法系列 列印 N N 螺旋矩陣

c c 面試之演算法系列 列印n n 螺旋矩陣 via和 emc都曾經筆過這個試題 輸入n,列印n n 矩陣比如 n 3 列印 123894 765n 4 列印 1234 1213145 1116156 10987 螺旋矩陣 include include define right0 define ...

七 css系列之盒子模型

一 盒子模型1.盒子模型是網頁製作中的重要的指導思想 2.盒子模型是網頁布局的基石 3.它認為頁面中所有元素都可以看做是乙個盒子,p div span a img 4.它認為可以通過設定盒子的屬性,進而改變盒子在頁面中的顯示效果 5.它認為頁面中的所有盒子是相互影響 二 盒子模型的屬性 寬度 高度 ...

活動目錄系列之七 信任(上)

在乙個森林環境中,大家想沒想過乙個問題,乙個域使用者不管來自於哪個域,它都可以做兩件事 一是可以不用輸密碼就可訪問森林內任意域的計算機上的共享資源 當然最終能不能訪問,要看許可權的設定,但至少可以直接開啟其計算機 二是可以在任意的計算機上登入到自己的域。為什麼會這樣呢?這其實就是 信任關係 所最終決...