中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

查詢商品價格走勢的網(wǎng)站自己建網(wǎng)站怎么弄

查詢商品價格走勢的網(wǎng)站,自己建網(wǎng)站怎么弄,怎樣添加網(wǎng)站上百度商橋代碼,效果營銷型網(wǎng)站建設(shè)HBASE集群主節(jié)點(diǎn)遷移割接手動操作步驟 HBASE集群主節(jié)點(diǎn)指的是包含zk、nn、HM和rm服務(wù)的節(jié)點(diǎn),一般這類服務(wù)都是一起復(fù)用在同一批節(jié)點(diǎn)上,我把這一類節(jié)點(diǎn)統(tǒng)稱為HBASE集群主節(jié)點(diǎn)。 本文中使用了rsync、pssh等工具,這類是開源的,自己…

HBASE集群主節(jié)點(diǎn)遷移割接手動操作步驟

HBASE集群主節(jié)點(diǎn)指的是包含zk、nn、HM和rm服務(wù)的節(jié)點(diǎn),一般這類服務(wù)都是一起復(fù)用在同一批節(jié)點(diǎn)上,我把這一類節(jié)點(diǎn)統(tǒng)稱為HBASE集群主節(jié)點(diǎn)。

本文中使用了rsync、pssh等工具,這類是開源的,自己可以下載安裝。還有一類是我自己寫的環(huán)境變量,xcgraceful_stopRegionserver是用于優(yōu)雅的停regionserver,建議使用腳本停,有時候可能會出現(xiàn)優(yōu)雅的停失效的問題。dxshell和xcjpsuser是一些我放在環(huán)境變量里面,堡壘機(jī)全局生效,腳本內(nèi)容會附在文章末尾。

一、遷移前準(zhǔn)備工作

1、遷移規(guī)劃

遷移節(jié)點(diǎn)		 主機(jī)名						目標(biāo)節(jié)點(diǎn)		 角色	 							節(jié)點(diǎn)別名
10.168.168.1	hbase01.colabigdata.com		10.168.201.1	zk,nn,dn,jn,ZKFC,HM,HRS,rm,nm	node1
10.168.168.2	hbase02.colabigdata.com		10.168.201.2	zk,nn,dn,jn,ZKFC,HM,HRS,rm,nm	node2
10.168.168.3	hbase03.colabigdata.com		10.168.201.3	zk,dn,jn,HRS,nm					node3
10.168.168.4	hbase04.colabigdata.com		10.168.201.4	zk,dn,jn,HRS,nm					node4
10.168.168.5	hbase05.colabigdata.com		10.168.201.5	zk,dn,jn,HRS,nm					node5

2、生成hosts文件

只包含集群在線的節(jié)點(diǎn),不包含未擴(kuò)容的。用于遷移過程中,每替換一個IP,需要修改一次/etc/hosts文件。

# vim move_hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain610.168.168.1	hbase01.colabigdata.com
10.168.168.2	hbase02.colabigdata.com
10.168.168.3	hbase03.colabigdata.com
10.168.168.4	hbase04.colabigdata.com
10.168.168.5	hbase05.colabigdata.com
10.168.168.6	hbase06.colabigdata.com
10.168.168.7	hbase07.colabigdata.com
10.168.168.8	hbase08.colabigdata.com
10.168.168.9	hbase09.colabigdata.com
10.168.168.10	hbase10.colabigdata.com

3、準(zhǔn)備集群IP列表

此IP列表與hosts是對應(yīng)關(guān)系,用于批量執(zhí)行命令時使用。

cat > move_list <<EOF
10.168.168.1
10.168.168.2
10.168.168.3
10.168.168.4
10.168.168.5
10.168.168.6
10.168.168.7
10.168.168.8
10.168.168.9
10.168.168.10
EOF

4、準(zhǔn)備zk集群IP列表

集群zk在線IP列表(不含新主節(jié)點(diǎn)ip):move_zk_list

cat > move_zk_list <<EOF
10.168.168.1
10.168.168.2
10.168.168.3
10.168.168.4
10.168.168.5
EOF

5、準(zhǔn)備除zk集群外IP列表

集群在非zk節(jié)點(diǎn)IP列表(不含新主節(jié)點(diǎn)ip):data_list

cat > data_list <<EOF
10.168.168.6
10.168.168.7
10.168.168.8
10.168.168.9
10.168.168.10
EOF

6、準(zhǔn)備舊zk集群IP列表

cat > old_zk_list <<EOF
10.168.168.1
10.168.168.2
10.168.168.3
10.168.168.4
10.168.168.5
EOF

7、準(zhǔn)備新zk集群IP列表

cat > new_zk_list <<EOF
10.168.201.1
10.168.201.2
10.168.201.3
10.168.201.4
10.168.201.5
EOF

8、目標(biāo)節(jié)點(diǎn)組件安裝

五個目標(biāo)zk節(jié)點(diǎn)zookeeper、hdfs、hbase、yarn組件已經(jīng)提前安裝完畢,未啟動任何服務(wù)。

9、刪除cmdb數(shù)據(jù),關(guān)閉告警和自啟腳本

dxshell move_list "userdel -r bdalarm"dxshell move_list "cd /var/spool/cron;rm -f bdalarm*"

10、關(guān)閉主節(jié)點(diǎn)dn、nm和rs服務(wù)

注意:排除主節(jié)點(diǎn)非核心服務(wù),方便遷移

dxshell move_zk_list "su - bigdata -c 'hadoop-daemon.sh stop datanode'"dxshell move_zk_list "su - yarn -c 'yarn-daemon.sh stop nodemanager'"#這里是優(yōu)雅的停Regionserver
xcgraceful_stopRegionserver move_zk_list

###正式開始遷移操作###

二、node5遷移

1、老機(jī)器停JN

sudo ssh 10.168.168.5 "su - bigdata -c 'hadoop-daemon.sh stop journalnode'"sudo ssh 10.168.168.5 "su - bigdata -c 'jps'"

2、老機(jī)器停ZK

sudo ssh 10.168.168.5 "su - zookeeper -c 'zkServer.sh stop'"sudo ssh 10.168.168.5 "su - zookeeper -c 'jps'"

3、老機(jī)器改主機(jī)名

sudo ssh 10.168.168.5 "hostnamectl set-hostname cola_node5"

4、DNS域名解析變更

使用的域名刪除遷移節(jié)點(diǎn)IP,變更為目標(biāo)節(jié)點(diǎn)IP。

5、更新/etc/hosts

#將move_list、move_hosts、move_zk_list文件中的 遷移節(jié)點(diǎn)IP 修改為目標(biāo)節(jié)點(diǎn) IP
sed -i 's/10.168.168.5/10.168.201.5/g' move_*#備份所有節(jié)點(diǎn)hosts
sudo pssh -h move_list "cp /etc/hosts /etc/hosts_$(date +%Y%m%d)_movenode5"#分發(fā)全量hosts到move_list列表
sudo pscp.pssh -h move_list move_hosts /etc/hosts

6、依次重啟所有zk服務(wù)

注意列表IP,不要并發(fā)重啟

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh stop ; zkServer.sh start'"

7、查看zk服務(wù)狀態(tài)

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh status'"

8、驗證zk_followers節(jié)點(diǎn)數(shù)量

先找到leader節(jié)點(diǎn)

echo 'mntr' | nc ${leader} 2015 |grep followers

zk_followers與zk_synced_followers的值相等則正常

9、拷貝node5的jn元數(shù)據(jù)到目標(biāo)節(jié)點(diǎn)

mkdir baknode5rsync -e 'sudo ssh' -r 10.168.168.5:/home/bigdata/hadoop/journal baknode5/rsync -e 'sudo ssh' -r baknode5/journal 10.168.201.5:/home/bigdata/hadoop/sudo ssh 10.168.201.5 "chown -R bigdata:bigdata /home/bigdata/hadoop"

10、node5目標(biāo)節(jié)點(diǎn)啟動JN服務(wù)

sudo ssh 10.168.201.5 "su - bigdata -c 'hadoop-daemon.sh start journalnode'"

驗證jn同步情況,及日志輸出是否正常。namenode的50070頁面上查看NameNode Journal Status,Written txid 一致則同步完成。

三、node4遷移

1、老機(jī)器停JN

sudo ssh 10.168.168.4 "su - bigdata -c 'hadoop-daemon.sh stop journalnode'"sudo ssh 10.168.168.4 "su - bigdata -c 'jps'"

2、老機(jī)器停ZK

sudo ssh 10.168.168.4 "su - zookeeper -c 'zkServer.sh stop'"sudo ssh 10.168.168.4 "su - zookeeper -c 'jps'"

3、老機(jī)器改主機(jī)名

sudo ssh 10.168.168.4 "hostnamectl set-hostname cola_node4"

4、DNS域名解析變更

使用的域名刪除遷移節(jié)點(diǎn)IP,變更為目標(biāo)節(jié)點(diǎn)IP。

5、更新/etc/hosts

#將move_list、move_hosts、move_zk_list文件中的 遷移節(jié)點(diǎn)IP 修改為目標(biāo)節(jié)點(diǎn) IP
sed -i 's/10.168.168.4/10.168.201.4/g' move_*#備份所有節(jié)點(diǎn)hosts
sudo pssh -h move_list "cp /etc/hosts /etc/hosts_$(date +%Y%m%d)_movenode4"#分發(fā)全量hosts到move_list列表
sudo pscp.pssh -h move_list move_hosts /etc/hosts

6、依次重啟所有zk服務(wù)

注意列表IP,不要并發(fā)重啟

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh stop ; zkServer.sh start'"

7、查看zk服務(wù)狀態(tài)

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh status'"

8、驗證zk_followers節(jié)點(diǎn)數(shù)量

先找到leader節(jié)點(diǎn)

echo 'mntr' | nc ${leader} 2015 |grep followers

zk_followers與zk_synced_followers的值相等則正常

9、拷貝node4的jn元數(shù)據(jù)到目標(biāo)節(jié)點(diǎn)

mkdir baknode4rsync -e 'sudo ssh' -r 10.168.168.4:/home/bigdata/hadoop/journal baknode4/rsync -e 'sudo ssh' -r baknode4/journal 10.168.201.4:/home/bigdata/hadoop/sudo ssh 10.168.201.4 "chown -R bigdata:bigdata /home/bigdata/hadoop"

10、node4目標(biāo)節(jié)點(diǎn)啟動JN服務(wù)

sudo ssh 10.168.201.4 "su - bigdata -c 'hadoop-daemon.sh start journalnode'"

驗證jn同步情況,及日志輸出是否正常。namenode的50070頁面上查看NameNode Journal Status,Written txid 一致則同步完成。

四、第一次nn主備切換

主備切換的目的,是擔(dān)心nn不是認(rèn)識新的zk5和zk4,從而有可能導(dǎo)致后續(xù)nn遷移失敗。做一次nn切換,可以保證active nn在切換后,可以檢測認(rèn)識到新zk5和zk4。這是一種非常保守的做法,只是因為一次生產(chǎn)事故后,做出的一種改變。

1、獲取nn1和nn2的狀態(tài)

sudo ssh 10.168.168.1 "su - bigdata -c 'hdfs haadmin -getServiceState nn1'"
standbysudo ssh 10.168.168.2 "su - bigdata -c 'hdfs haadmin -getServiceState nn2'"
active

2、重啟standby nn服務(wù)

sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh stop namenode'"sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh start namenode'"

3、執(zhí)行主備切換

注意:等待nn退出安全模式后再執(zhí)行切換。

如下命令是將active nn從nn2切換到nn1

sudo ssh 10.168.168.2 "su - bigdata -c 'hdfs haadmin -failover nn2 nn1'"

五、node3遷移

1、老機(jī)器停JN

sudo ssh 10.168.168.3 "su - bigdata -c 'hadoop-daemon.sh stop journalnode'"sudo ssh 10.168.168.3 "su - bigdata -c 'jps'"

2、老機(jī)器停ZK

sudo ssh 10.168.168.3 "su - zookeeper -c 'zkServer.sh stop'"sudo ssh 10.168.168.3 "su - zookeeper -c 'jps'"

3、老機(jī)器改主機(jī)名

sudo ssh 10.168.168.3 "hostnamectl set-hostname cola_node3"

4、DNS域名解析變更

使用的域名刪除遷移節(jié)點(diǎn)IP,變更為目標(biāo)節(jié)點(diǎn)IP。

5、更新/etc/hosts

#將move_list、move_hosts、move_zk_list文件中的 遷移節(jié)點(diǎn)IP 修改為目標(biāo)節(jié)點(diǎn) IP
sed -i 's/10.168.168.3/10.168.201.3/g' move_*#備份所有節(jié)點(diǎn)hosts
sudo pssh -h move_list "cp /etc/hosts /etc/hosts_$(date +%Y%m%d)_movenode3"#分發(fā)全量hosts到move_list列表
sudo pscp.pssh -h move_list move_hosts /etc/hosts

6、依次重啟所有zk服務(wù)

注意列表IP,不要并發(fā)重啟

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh stop ; zkServer.sh start'"

7、查看zk服務(wù)狀態(tài)

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh status'"

8、驗證zk_followers節(jié)點(diǎn)數(shù)量

先找到leader節(jié)點(diǎn)

echo 'mntr' | nc ${leader} 2015 |grep followers

zk_followers與zk_synced_followers的值相等則正常

9、拷貝node3的jn元數(shù)據(jù)到目標(biāo)節(jié)點(diǎn)

mkdir baknode3rsync -e 'sudo ssh' -r 10.168.168.3:/home/bigdata/hadoop/journal baknode3/rsync -e 'sudo ssh' -r baknode3/journal 10.168.201.3:/home/bigdata/hadoop/sudo ssh 10.168.201.3 "chown -R bigdata:bigdata /home/bigdata/hadoop"

10、node3目標(biāo)節(jié)點(diǎn)啟動JN服務(wù)

sudo ssh 10.168.201.3 "su - bigdata -c 'hadoop-daemon.sh start journalnode'"

驗證jn同步情況,及日志輸出是否正常。namenode的50070頁面上查看NameNode Journal Status,Written txid 一致則同步完成。

注意:如果長時間同步一不一致,可以嘗試把正確jn數(shù)據(jù)重新復(fù)制一份到新節(jié)點(diǎn)。

六、node2遷移

先確認(rèn)namenode的active和standby分布在那個節(jié)點(diǎn)上。如果node1是active,node2是standby,必須先遷移standby。

遷移到目前為止,當(dāng)前主節(jié)點(diǎn)列表應(yīng)該和如下一致。

10.168.168.1	hbase01.colabigdata.com
10.168.168.2	hbase02.colabigdata.com
10.168.201.3	hbase03.colabigdata.com
10.168.201.4	hbase04.colabigdata.com
10.168.201.5	hbase05.colabigdata.com

1、獲取nn1和nn2的狀態(tài)

sudo ssh 10.168.168.1 "su - bigdata -c 'hdfs haadmin -getServiceState nn1'"
standbysudo ssh 10.168.168.2 "su - bigdata -c 'hdfs haadmin -getServiceState nn2'"
active

2、先停standby nn節(jié)點(diǎn)的zkfc

sudo ssh 10.168.168.2 "su - bigdata -c 'hadoop-daemon.sh stop zkfc'"

3、再停active nn節(jié)點(diǎn)的zkfc

sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh stop zkfc'"

注意:如果當(dāng)前standby為node2,就先操作node2節(jié)點(diǎn)的遷移,原則上先操作standby節(jié)點(diǎn)。

注:如果node2不是standby,建議提前將node2切換為standby。因為操作步驟中是按照node5~node1順序遷移寫的,如果現(xiàn)場改操作內(nèi)容,可能會導(dǎo)致操作變復(fù)雜。

4、停node2節(jié)點(diǎn)所有服務(wù)

sudo ssh 10.168.168.2 "su - yarn -c 'yarn-daemon.sh stop resourcemanager'"
sudo ssh 10.168.168.2 "su - yarn -c 'mr-jobhistory-daemon.sh stop historyserver'"
sudo ssh 10.168.168.2 "su - hbase -c 'hbase-daemon.sh stop master'"
sudo ssh 10.168.168.2 "su - bigdata -c 'hadoop-daemon.sh stop journalnode'"
sudo ssh 10.168.168.2 "su - bigdata -c 'hadoop-daemon.sh stop namenode'"
sudo ssh 10.168.168.2 "su - zookeeper -c 'zkServer.sh stop'"

5、老機(jī)器改主機(jī)名

sudo ssh 10.168.168.2 "hostnamectl set-hostname cola_node2"

6、DNS域名解析變更

使用的域名刪除遷移節(jié)點(diǎn)IP,變更為目標(biāo)節(jié)點(diǎn)IP。

7、更新/etc/hosts

#將move_list、move_hosts、move_zk_list文件中的 遷移節(jié)點(diǎn)IP 修改為目標(biāo)節(jié)點(diǎn) IP
sed -i 's/10.168.168.2/10.168.201.2/g' move_*#備份所有節(jié)點(diǎn)hosts
sudo pssh -h move_list "cp /etc/hosts /etc/hosts_$(date +%Y%m%d)_movenode2"#分發(fā)全量hosts到move_list列表
sudo pscp.pssh -h move_list move_hosts /etc/hosts

8、備份JN元數(shù)據(jù)、NN元數(shù)據(jù)fsimage和editlog日志

mkdir baknode2rsync -e 'sudo ssh' -r 10.168.168.2/home/bigdata/hadoop/journal baknode2/rsync -e 'sudo ssh' -r 10.168.168.2:/metadata/namenode baknode2/rsync -e 'sudo ssh' -r 10.168.168.2:/log/bigdata/hdfs-audit.log baknode2/

9、拷貝JN元數(shù)據(jù)、NN元數(shù)據(jù)到新節(jié)點(diǎn)

# 拷貝JN元數(shù)據(jù)到新節(jié)點(diǎn)
rsync -e 'sudo ssh' -r baknode2/journal 10.168.201.2:/home/bigdata/hadoop/sudo ssh 10.168.201.2 "chown -R bigdata:bigdata /home/bigdata/hadoop"# 拷貝NN元數(shù)據(jù)到新節(jié)點(diǎn)
sudo ssh 10.168.201.2 "mkdir /log/bigdata"rsync -e 'sudo ssh' -r baknode2/namenode 10.168.201.2:/metadata/sudo ssh 10.168.201.2 "chown -R bigdata:bigdata /metadata/namenode"rsync -e 'sudo ssh' -r baknode2/hdfs-audit.log 10.168.201.2:/home/bigdata/hadoop/sudo ssh 10.168.201.2 "chown -R bigdata:bigdata /log"sudo ssh 10.168.201.2 "su - bigdata -c 'cd hadoop;ln -nsf /log/bigdata logs; ln -nsf /metadata/namenode namenode'"

10、新機(jī)器啟動 journalnode 和 namenode

sudo ssh 10.168.201.2 "su - bigdata -c 'hadoop-daemon.sh start journalnode'"sudo ssh 10.168.201.2 "su - bigdata -c 'hadoop-daemon.sh start namenode'"

a、驗證jn同步情況,及日志輸出是否正常。namenode的50070頁面上查看NameNode Journal Status,Written txid 一致則同步完成。

b、驗證standby文件數(shù)和block數(shù)與active是否一致,是否實時更新,不斷觀察日志,當(dāng)standby nn 進(jìn)入safemode后如有異常,立即停止standby nn進(jìn)程,確認(rèn)問題原因。

c、實時觀察dn日志Block report是否報錯(進(jìn)入安全模式之后)。

11、依次重啟所有zk服務(wù)

注意列表IP,不要并發(fā)重啟

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh stop ; zkServer.sh start'"

12、查看zk服務(wù)狀態(tài)

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh status'"

13、驗證zk_followers節(jié)點(diǎn)數(shù)量

先找到leader節(jié)點(diǎn)

echo 'mntr' | nc ${leader} 2015 |grep followers

zk_followers與zk_synced_followers的值相等則正常

14、新機(jī)器啟動HMaster

sudo ssh 10.168.201.2 "su - hbase -c 'hbase-daemon.sh start master'"

查看16010界面master狀態(tài)是否正常

15、新機(jī)器啟動ResourceManager和historyserver服務(wù)

sudo ssh 10.168.201.2 "su - yarn -c 'yarn-daemon.sh start resourcemanager'"sudo ssh 10.168.201.2 "su - yarn -c 'mr-jobhistory-daemon.sh start historyserver'"

16、重啟node1節(jié)點(diǎn)HMaster服務(wù)

sudo ssh 10.168.168.1 "su - hbase -c 'hbase-daemon.sh stop master'"
sudo ssh 10.168.168.1 "su - hbase -c 'hbase-daemon.sh start master'"

17、重啟node1節(jié)點(diǎn)ResourceManager服務(wù)

sudo ssh 10.168.168.1 "su - yarn -c 'yarn-daemon.sh stop resourcemanager && sleep 10s && yarn-daemon.sh start resourcemanager'"

18、第一次滾動重啟客戶端服務(wù)

重啟regionserver,datanode、nodemanager服務(wù)。所有數(shù)據(jù)節(jié)點(diǎn)在 data_list文件中。

dxshell data_list "su - hbase -c 'hbase-daemon.sh restart regionserver'"xcjpsuser data_list hbasedxshell data_list "su - bigdata -c 'hadoop-daemon.sh stop datanode && hadoop-daemon.sh start datanode'"xcjpsuser data_list bigdatadxshell data_list "su - yarn -c 'yarn-daemon.sh stop nodemanager && yarn-daemon.sh start nodemanager'"xcjpsuser data_list yarn

七、第二次nn主備切換

這一次主備切換,主要是為了將active nn切換至新節(jié)點(diǎn),檢驗新節(jié)點(diǎn)是否可以切換成功。第二個目的是將node1變?yōu)閟tandby,減少node1遷移的影響。

1、獲取nn1和nn2的狀態(tài)

sudo ssh 10.168.168.1 "su - bigdata -c 'hdfs haadmin -getServiceState nn1'"
activesudo ssh 10.168.201.2 "su - bigdata -c 'hdfs haadmin -getServiceState nn2'"
standby

2、啟動zkfc

sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh start zkfc'"sudo ssh 10.168.201.2 "su - bigdata -c 'hadoop-daemon.sh start zkfc'"

3、新節(jié)點(diǎn)10.168.201.2生成秘鑰

su - bigdata#一路回車
ssh-keygen -t rsa#在.ssh目錄下,新建authorized_keys文件
touch  ~/.ssh/authorized_keys#修改權(quán)限,.ssh必須是700,authorized_keys必須是600。否則可能會提醒你輸入密碼,免密不成功。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

4、做nn1和nn2互密

將彼此的 ~/.ssh/id_rsa.pub公鑰文件內(nèi)容 --> 追加到~/.ssh/authorized_keys文件中

5、執(zhí)行主備切換

本次不用等fsimage元數(shù)據(jù)合并了,只要該節(jié)點(diǎn)jn有edits新數(shù)據(jù)就可以了。

# nn1 to nn2(根據(jù)實際情況)
sudo ssh 10.168.201.2 "su - bigdata -c 'hdfs haadmin -failover nn1 nn2'"

6、驗證主備切換是否成功

curl -s 'http://10.168.168.1:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem' |jq -r .beans[0].'"tag.HAState"'curl -s 'http://10.168.201.2:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem' |jq -r .beans[0].'"tag.HAState"'

八、node1遷移

先確認(rèn)namenode的active和standby分布在那個節(jié)點(diǎn)上。node1是最后一個節(jié)點(diǎn)了,此刻該節(jié)點(diǎn)是standby才對,如果不對,那就是你漏了什么步驟。建議手動切換后,再遷移。

遷移到目前為止,當(dāng)前主節(jié)點(diǎn)列表應(yīng)該和如下一致。

10.168.168.1	hbase01.colabigdata.com
10.168.201.2	hbase02.colabigdata.com
10.168.201.3	hbase03.colabigdata.com
10.168.201.4	hbase04.colabigdata.com
10.168.201.5	hbase05.colabigdata.com

1、獲取nn1和nn2的狀態(tài)

sudo ssh 10.168.168.1 "su - bigdata -c 'hdfs haadmin -getServiceState nn1'"
activesudo ssh 10.168.201.2 "su - bigdata -c 'hdfs haadmin -getServiceState nn2'"
standby

2、先停standby nn節(jié)點(diǎn)的zkfc

sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh stop zkfc'"

3、再停active nn節(jié)點(diǎn)的zkfc

sudo ssh 10.168.201.2 "su - bigdata -c 'hadoop-daemon.sh stop zkfc'"

4、停node1節(jié)點(diǎn)所有服務(wù)

sudo ssh 10.168.168.1 "su - yarn -c 'yarn-daemon.sh stop resourcemanager'"
sudo ssh 10.168.168.1 "su - hbase -c 'hbase-daemon.sh stop master'"
sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh stop journalnode'"
sudo ssh 10.168.168.1 "su - bigdata -c 'hadoop-daemon.sh stop namenode'"
sudo ssh 10.168.168.1 "su - zookeeper -c 'zkServer.sh stop'"

5、老機(jī)器改主機(jī)名

sudo ssh 10.168.168.1 "hostnamectl set-hostname cola_node1"

6、DNS域名解析變更

使用的域名刪除遷移節(jié)點(diǎn)IP,變更為目標(biāo)節(jié)點(diǎn)IP。

7、更新/etc/hosts

#將move_list、move_hosts、move_zk_list文件中的 遷移節(jié)點(diǎn)IP 修改為目標(biāo)節(jié)點(diǎn) IP
sed -i 's/10.168.168.1/10.168.201.1/g' move_*#備份所有節(jié)點(diǎn)hosts
sudo pssh -h move_list "cp /etc/hosts /etc/hosts_$(date +%Y%m%d)_movenode1"#分發(fā)全量hosts到move_list列表
sudo pscp.pssh -h move_list move_hosts /etc/hosts

8、備份JN元數(shù)據(jù)、NN元數(shù)據(jù)fsimage和editlog日志

mkdir baknode1rsync -e 'sudo ssh' -r 10.168.168.1:/home/bigdata/hadoop/journal baknode1/rsync -e 'sudo ssh' -r 10.168.168.1:/metadata/namenode baknode1/rsync -e 'sudo ssh' -r 10.168.168.1:/log/bigdata/hdfs-audit.log baknode1/

9、拷貝JN元數(shù)據(jù)、NN元數(shù)據(jù)到新節(jié)點(diǎn)

# 拷貝JN元數(shù)據(jù)到新節(jié)點(diǎn)
rsync -e 'sudo ssh' -r baknode1/journal 10.168.201.1:/home/bigdata/hadoop/sudo ssh 10.168.201.1 "chown -R bigdata:bigdata /home/bigdata/hadoop"# 拷貝NN元數(shù)據(jù)到新節(jié)點(diǎn)
sudo ssh 10.168.201.1 "mkdir /log/bigdata"rsync -e 'sudo ssh' -r baknode1/namenode 10.168.201.1:/metadata/sudo ssh 10.168.201.1 "chown -R bigdata:bigdata /metadata/namenode"rsync -e 'sudo ssh' -r baknode1/hdfs-audit.log 10.168.201.1:/home/bigdata/hadoop/sudo ssh 10.168.201.1 "chown -R bigdata:bigdata /log"sudo ssh 10.168.201.1 "su - bigdata -c 'cd hadoop;ln -nsf /log/bigdata logs; ln -nsf /metadata/namenode namenode'"

10、新機(jī)器啟動 journalnode 和 namenode

sudo ssh 10.168.201.1 "su - bigdata -c 'hadoop-daemon.sh start journalnode'"sudo ssh 10.168.201.1 "su - bigdata -c 'hadoop-daemon.sh start namenode'"

a、驗證jn同步情況,及日志輸出是否正常。namenode的50070頁面上查看NameNode Journal Status,Written txid 一致則同步完成。

b、驗證standby文件數(shù)和block數(shù)與active是否一致,是否實時更新,不斷觀察日志,當(dāng)standby nn 進(jìn)入safemode后如有異常,立即停止standby nn進(jìn)程,確認(rèn)問題原因。

c、實時觀察dn日志Block report是否報錯(進(jìn)入安全模式之后)。

11、依次重啟所有zk服務(wù)

注意列表IP,不要并發(fā)重啟

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh stop ; zkServer.sh start'"

12、查看zk服務(wù)狀態(tài)

dxshell move_zk_list "su - zookeeper -c 'zkServer.sh status'"

13、驗證zk_followers節(jié)點(diǎn)數(shù)量

先找到leader節(jié)點(diǎn)

echo 'mntr' | nc ${leader} 2015 |grep followers

zk_followers與zk_synced_followers的值相等則正常

14、新機(jī)器啟動HMaster

sudo ssh 10.168.201.1 "su - hbase -c 'hbase-daemon.sh start master'"

查看16010界面master狀態(tài)是否正常

15、新機(jī)器啟動ResourceManager

sudo ssh 10.168.201.1 "su - yarn -c 'yarn-daemon.sh start resourcemanager'"

16、重啟node2節(jié)點(diǎn)HMaster服務(wù)

sudo ssh 10.168.201.2 "su - hbase -c 'hbase-daemon.sh stop master'"
sudo ssh 10.168.201.2 "su - hbase -c 'hbase-daemon.sh start master'"

17、重啟node2節(jié)點(diǎn)ResourceManager服務(wù)

sudo ssh 10.168.201.2 "su - yarn -c 'yarn-daemon.sh stop resourcemanager ; yarn-daemon.sh start resourcemanager'"

18、第二次滾動重啟客戶端服務(wù)

重啟regionserver,datanode、nodemanager服務(wù)。所有數(shù)據(jù)節(jié)點(diǎn)在 data_list文件中。

dxshell data_list "su - hbase -c 'hbase-daemon.sh restart regionserver'"xcjpsuser data_list hbasedxshell data_list "su - bigdata -c 'hadoop-daemon.sh stop datanode && hadoop-daemon.sh start datanode'"xcjpsuser data_list bigdatadxshell data_list "su - yarn -c 'yarn-daemon.sh stop nodemanager && yarn-daemon.sh start nodemanager'"xcjpsuser data_list yarn

九、第三次nn主備切換

這一次主備切換,主要是為了將active nn切換至node1新節(jié)點(diǎn),檢驗最后一個新節(jié)點(diǎn)是否可以切換成功。

1、獲取nn1和nn2的狀態(tài)

sudo ssh 10.168.201.1 "su - bigdata -c 'hdfs haadmin -getServiceState nn1'"
standbysudo ssh 10.168.201.2 "su - bigdata -c 'hdfs haadmin -getServiceState nn2'"
active

2、啟動zkfc

sudo ssh 10.168.201.1 "su - bigdata -c 'hadoop-daemon.sh start zkfc'"sudo ssh 10.168.201.2 "su - bigdata -c 'hadoop-daemon.sh start zkfc'"

3、新節(jié)點(diǎn)10.168.201.1生成秘鑰

su - bigdata#一路回車
ssh-keygen -t rsa#在.ssh目錄下,新建authorized_keys文件
touch  ~/.ssh/authorized_keys#修改權(quán)限,.ssh必須是700,authorized_keys必須是600。否則可能會提醒你輸入密碼,免密不成功。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

4、做nn1和nn2互密

將彼此的 ~/.ssh/id_rsa.pub公鑰文件內(nèi)容 --> 追加到~/.ssh/authorized_keys文件中

5、執(zhí)行主備切換

本次不用等fsimage元數(shù)據(jù)合并了,只要該節(jié)點(diǎn)jn有edits新數(shù)據(jù)就可以了。

但這是最后一次主備切換,standby節(jié)點(diǎn)會在一個小時之后生成一個新的fsimage文件,并同步到active節(jié)點(diǎn)。

# nn2 to nn1(根據(jù)實際情況)
sudo ssh 10.168.201.1 "su - bigdata -c 'hdfs haadmin -failover nn2 nn1'"

6、驗證主備切換是否成功

curl -s 'http://10.168.201.1:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem' |jq -r .beans[0].'"tag.HAState"'curl -s 'http://10.168.201.2:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem' |jq -r .beans[0].'"tag.HAState"'

7、主節(jié)點(diǎn)啟動datanode服務(wù)

sudo pssh -h move_zk_list "su - bigdata -c 'hadoop-daemon.sh start datanode'"

8、主節(jié)點(diǎn)啟動regionserver服務(wù)

sudo pssh -h move_zk_list "su - hbase -c 'hbase-daemon.sh start regionserver'"

9、主節(jié)點(diǎn)啟動nodemanager服務(wù)

sudo pssh -h move_zk_list "su - yarn -c 'yarn-daemon.sh start nodemanager'"

10、觀察fsimage元數(shù)據(jù)是否生成

因為到目前為止,主節(jié)點(diǎn)服務(wù)遷移已經(jīng)完成了。這里有最后一次主備切換,standby nn節(jié)點(diǎn)會在一個小時之后生成一個新的fsimage文件,并同步到active nn節(jié)點(diǎn)上。所以一定要觀察standby nn和active nn是否有新的fsimage文件。

十、縮容需要下線的數(shù)據(jù)節(jié)點(diǎn)

老數(shù)據(jù)節(jié)點(diǎn)HRegionServer,nodemanager,dn要decommission

#olddata 添加需要下線的IP列表
cat > olddata <<EOF
10.168.168.6
10.168.168.7
10.168.168.8
10.168.168.9
10.168.168.10
EOF#優(yōu)雅的停hregionserver
xcgraceful_stopRegionserver olddata
xcjpsuser olddata hbase#停nodemanager
dxshell olddata "su - yarn -c 'yarn-daemon.sh stop nodemanager'"
xcjpsuser olddata yarn#decommission做dn節(jié)點(diǎn)
#登錄主節(jié)點(diǎn)
sudo ssh 10.168.201.1
#備份配置文件
su - bigdata
cd software/hadoop/etc/hadoop/
cp exclude exclude_$(date +%Y%m%d)
#添加下線節(jié)點(diǎn)
vi exclude
#刷新生效
hdfs dfsadmin -refreshNodes#登錄主節(jié)點(diǎn)
sudo ssh 10.168.201.2
#備份配置文件
su - bigdata
cd software/hadoop/etc/hadoop/
cp exclude exclude_$(date +%Y%m%d)
#添加下線節(jié)點(diǎn)
vi exclude
#刷新生效
hdfs dfsadmin -refreshNodes

附:腳本

這一類腳本就是平時總結(jié)通用的內(nèi)容,存放在堡壘機(jī)環(huán)境變量路徑下,方便隨時可以調(diào)用。

1、dxshell腳本

#!/bin/bash
# Author : LJ
# Date   : 2021/10/11
# Func   : 通用批處理查詢。if [ $# -lt 2 ]
thenecho -e "\033[1;31m 參數(shù)不足,請重新執(zhí)行... \033[0m"echo -e "\033[1;32m 此腳本傳參使用方法:$0 第一個參數(shù)為待查詢的ip列表文件名 第二個參數(shù)為等待執(zhí)行的shell命令,命令中如果有“$”,注意轉(zhuǎn)譯。 \033[0m"exit ;
fi
workdir=`pwd`list=$1
list_ip=`cd ${workdir};cat $list|awk '{print $1}'`
#此腳本適用于通用查詢,用戶就在root下就可以。
user=xcommand=$2sum=`cat $list|sed '/^$/d'|wc -l`
num=1for ip in ${list_ip[@]} ; doecho -e "\033[1;31m$num\033[1;32m/$sum	=============== $ip 節(jié)點(diǎn) \033[1;33m執(zhí)行命令:${xcommand} \033[1;32m返回結(jié)果如下: =============== \033[0m"sudo ssh $ip -C "${xcommand}" let num++
done

2、xcjpsuser腳本

#!/bin/bash
if [ $# -lt 2 ]
thenecho -e "\033[1;31m 參數(shù)不足,請重新執(zhí)行... \033[0m"echo -e "\033[1;32m 此腳本傳參使用方法:$0 第一個參數(shù)為待查詢的ip列表文件名 第二個參數(shù)為有jdk的用戶,用于執(zhí)行jps命令 \033[0m"exit ;
fi
workdir=`pwd`list=$1
list_ip=`cd ${workdir};cat $list|awk '{print $1}'`
user=$2sum=`cat $list|sed '/^$/d'|wc -l`
num=1for ip in ${list_ip[@]} ; doecho -e "\033[1;31m$num\033[1;32m/$sum	 =============== $ip 節(jié)點(diǎn) $user 用戶下 現(xiàn)有java進(jìn)程 =============== \033[0m"sudo ssh $ip -C "su - $user -c 'jps|grep -v Jps'" let num++
done

3、xcgraceful_stopRegionserver腳本

#!/bin/bash
# Author : LJ
# Date   : 2023/3/15
# Func   : 批量優(yōu)雅的停一批節(jié)點(diǎn)HRegionServer服務(wù)if [ $# -lt 1 ]
thenecho -e "\033[1;31m 參數(shù)不足,請重新執(zhí)行... \033[0m"echo -e "\033[1;32m 此腳本傳參使用方法:$0 第一個參數(shù)為待查詢的ip列表文件名 \033[0m"exit ;
fi
#workdir=`pwd`
list_ip="$1"
#sum記錄節(jié)點(diǎn)個數(shù)
sum=`cat "${list_ip}"|wc -l`
#使用stop_count數(shù)組,用于記錄stop次數(shù),次數(shù)用于初始化賦值
for (( i=0; i<"$sum"; i=i+1 )) ; dostop_count[i]=0
done
#對ip進(jìn)行遍歷執(zhí)行stop,stop不成功的節(jié)點(diǎn)會使用數(shù)組i--進(jìn)行再次重試。如果重試大于5次,直接使用kill -9 stop。
for (( i=0; i<"$sum"; i=i+1 )) ; dolet num=${i}+1let stop_count[i]++arr[i]=`sed -n "${num}p" ${list_ip}`ip="${arr[i]}"#操作第一實例 HRegionServerrg1_wc=`sudo ssh $ip -C "ps -ef|grep -w '/home/hbase/logs'|grep -w 'org.apache.hadoop.hbase.regionserver.HRegionServer'|grep -v grep|wc -l"`if [ "${rg1_wc}" -eq 1 ] ; thenecho -e "\033[1;31m$num\033[1;32m/$sum 開始 第 ${stop_count[i]} 次優(yōu)雅的停 ${ip} 節(jié)點(diǎn)的 HRegionServer1 服務(wù) 執(zhí)行時間: $(date +%Y-%m-%d\ %H:%M:%S) \033[0m"sudo ssh $ip -C 'su - hbase -c "graceful_stop.sh --maxthreads 32 -e `hostname` "' >/dev/null 2>&1sleep 30fi#操作第二實例 HRegionServerrg2_wc=`sudo ssh $ip -C "ps -ef|grep -w '/home/hbase/logs2'|grep -w 'org.apache.hadoop.hbase.regionserver.HRegionServer'|grep -v grep|wc -l"`if [ "${rg2_wc}" -eq 1 ] ; thenecho -e "\033[1;31m$num\033[1;32m/$sum 開始 第 ${stop_count[i]} 次優(yōu)雅的停 ${ip} 節(jié)點(diǎn)的 HRegionServer2 服務(wù) 執(zhí)行時間: $(date +%Y-%m-%d\ %H:%M:%S) \033[0m"sudo ssh $ip -C 'su - hbase -c "graceful_stop.sh --config /home/hbase/software/hbase/conf2 --maxthreads 32 -e `hostname` "' >/dev/null 2>&1sleep 30fi#stop操作結(jié)果檢查,只要還存在 HRegionServer 進(jìn)程,就返回繼續(xù)執(zhí)行本節(jié)點(diǎn)stop操作check_rg_wc=`sudo ssh $ip -C 'su - hbase -c "jps|grep -i HRegionServer"|wc -l'`#判斷是否還要 HRegionServer 進(jìn)程if [ "${check_rg_wc}" -ne 0 ] ; thenif [ "${stop_count[i]}" -gt 5 ] ; thenecho -e "\033[1;31m$num\033[1;32m/$sum \033[1;33m 優(yōu)雅的停第 ${stop_count[i]} 沒成功,重試次數(shù)大于5次,跳過本節(jié)點(diǎn)操作 執(zhí)行時間: $(date +%Y-%m-%d\ %H:%M:%S) \033[0m"echo "${ip}"elselet i--fielseecho -e "\033[1;31m$num\033[1;32m/$sum \033[1;33m ${ip} 節(jié)點(diǎn)(已經(jīng))無 HRegionServer 服務(wù) 執(zhí)行時間: $(date +%Y-%m-%d\ %H:%M:%S) \033[0m"fi
done
http://www.risenshineclean.com/news/50113.html

相關(guān)文章:

  • 網(wǎng)站微信認(rèn)證費(fèi)用多少錢八上數(shù)學(xué)優(yōu)化設(shè)計答案
  • seo做的不好的網(wǎng)站免費(fèi)網(wǎng)絡(luò)推廣平臺
  • r6300v2做網(wǎng)站搜索排名廣告營銷
  • 做出口網(wǎng)站鄭州新聞發(fā)布
  • 建設(shè)工程材料網(wǎng)站百度seo怎么優(yōu)化
  • 做廚柜有招聘網(wǎng)站嗎seo網(wǎng)站關(guān)鍵字優(yōu)化
  • 紙牌網(wǎng)站建設(shè)德陽seo
  • 網(wǎng)頁設(shè)計的注意事項網(wǎng)絡(luò)網(wǎng)站推廣優(yōu)化
  • 怎么在programmableweb 網(wǎng)站做api分析圖表深圳百度國際大廈
  • 所有做網(wǎng)站公司營銷廣告文案
  • 外貿(mào)網(wǎng)站該怎么做營銷存在的問題及改進(jìn)
  • 爾雅網(wǎng)站開發(fā)實戰(zhàn)百度站長工具網(wǎng)站提交
  • 廣告公司做的網(wǎng)站字體侵權(quán)武漢seo首頁
  • 美國做deals的網(wǎng)站中山百度推廣公司
  • 吉林省水土保持生態(tài)建設(shè)網(wǎng)站網(wǎng)站seo優(yōu)化方案設(shè)計
  • 關(guān)于做網(wǎng)站的調(diào)查問卷外包公司
  • 鎮(zhèn)江疫情最新數(shù)據(jù)seo免費(fèi)外鏈工具
  • 相親網(wǎng)與做網(wǎng)站廣州關(guān)鍵詞搜索排名
  • 網(wǎng)站建設(shè)初期工作方案網(wǎng)絡(luò)推廣項目代理
  • 廣州做企業(yè)網(wǎng)站找哪家公司好網(wǎng)絡(luò)營銷推廣方法和手段
  • 移動網(wǎng)站的開發(fā)流程圖搜索引擎培訓(xùn)班
  • 淘寶客云建站官網(wǎng)百度q3財報2022
  • 做地產(chǎn)的設(shè)計網(wǎng)站seo顧問
  • 政府網(wǎng)站用什么cmsseo新人怎么發(fā)外鏈
  • 長沙外貿(mào)建站vue seo 優(yōu)化方案
  • 北京中高端網(wǎng)站建設(shè)友情鏈接買賣平臺
  • 網(wǎng)站免費(fèi)正能量不用下載歐洲站fba
  • 公司網(wǎng)站建設(shè)費(fèi)用賬務(wù)處理百度云群組
  • 深圳購物網(wǎng)站建網(wǎng)站怎么快速排名
  • 圖片制作在線制作免費(fèi)seo外包公司費(fèi)用