僞分佈Hadoop2.7.6 hbase2.1.8升級到Hadoop3.1.3 hbase2.1.10

如果Hadoop集羣配置了高可用,則可以進行不停服的滾動升級。但現在是僞分佈的單節點集羣,因此需要停止Hadoop及相關的應用,包括hbase、zookeeper等。

Hadoop升級

  1. 因爲目前有跑flink作業,checkpoint是放在hdfs上的,因此先停掉對應的job(只需要停job,不用關flink集羣)
  2. 停止hbase集羣:stop-hbase.sh
  3. 停止Hadoop集羣:stop-all.sh
  4. 備份hdfs元數據:包括namenode元數據、datanode元數據、臨時數據,我都備份了。命令類似:

    tar -zcvf /opt/backup/backup_namenode.tar.gz *

  5. 上傳新版本Hadoop安裝包,解壓、配置(包括Hadoop配置文件,以及/etc/profile環境變量指向新版本)
  6. 新版本sbin目錄下執行升級操作:./start-dfs.sh -upgrade
  7. 啓動Hadoop集羣:start-all.sh

3.1.3版本的hdfs web端口由50070改爲了9870: 

此時可以看到上面有一行說明,紅框中的意思是正在升級。

等了10分鐘左右還是這樣,但我通過hdfs dfsadmin -report查看hdfs狀態是正常的,且通過hdfs fsck -blocks查看塊數據也沒有丟失的,所以就直接輸入如下命令來手動結束升級:

$ hdfs dfsadmin -finalizeUpgrade
Finalize upgrade successful

接下來進行hbase的升級

hbase升級

  1. 上傳新版本hbase安裝包,解壓,修改配置(包括hbase的配置文件以及/etc/profile中的hbase路徑)
  2. 將lib/client-facing-thirdparty下的兩個htrace文件複製到lib下,不然啓動hbase會報錯org.apache.htrace.SamplerBuilder找不到
  3. 啓動hbase,如果報錯FanOutOneBlockAsyncDFSOutputHelper找不到,則需要在hbase-site.xml添加配置
<property>
      <name>hbase.wal.provider</name>
      <value>filesystem</value>
</property>

 再次啓動即可。(可能需要過一段時間hbase shell才能用,我看了日誌,大概5分鐘之後可用)

至此,Hadoop和hbase的僞分佈模式升級完成。接下來把舊版本文件刪掉即可。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章