乾貨 | 如何爲已有的 ambari 集羣修改主機名

版本:ambari 2.7.3 ,其他版本應該也差不多是一樣的

一、背景說明

時不時就有小夥伴微信裏面問我有沒有做過,爲已有的 ambari 集羣修改主機名?之前是有修改過 ip 的,主機名還真沒修改過,只能給他提供一份官方的步驟:https://docs.cloudera.com/HDPDocuments/Ambari-2.2.2.0/bk_ambari_reference_guide/content/ch_changing_host_names.html 。不過經過後面小夥伴們的反饋,都修改成功了。最近有一位小夥伴還給出了他自己的實操步驟:

根據官方文檔和朋友提供的的實操步驟,我也來實戰演練一番。

二、節點說明

我有兩臺 ambari 節點,主機名分別是 server.data,agent.data 。

其中 ambari-server 安裝在 server.data 上;ambari-agent 兩臺均有安裝。

三、實操

1、禁用 Kerberos

官方文檔上有描述,需要在修改主機名之前,禁用掉 Kerberos 。如果沒開啓 Kerberos 的話,可以略過這一步。

2、備份 ambari 數據庫

一般,我會將 ambari 元數據信息保存在 mysql 中,ambari 數據庫中的 hosts 表會存儲着所有的主機信息。所以我們先備份一下元數據,以便必要時候回滾。

3、停止所有服務

有的服務配置會有主機信息,比如 HDFS ,如下圖所示,host 配置都是配置的主機名。如果我們要修改主機名的話,那這些配置也得修改,所以先停掉所有服務再說。

4、停止 ambari-server 和 ambari-agent

停止 ambari-server 進程,然後也要停止所有節點上的 ambari-agent 進程。

5、修改主機名和/etc/hosts文件

hostnamectl set-hostname hdp1.data
hostnamectl set-hostname hdp2.data

vim /etc/hosts

10.255.20.139 hdp1.data
10.255.20.198 hdp2.data

需要確保所有 ambari 節點的 /etc/hosts 文件中的主機名都修改成了最新的。

6、測試免密是否可用

主要測試 ambari-server 節點 與 ambari-agent 節點的免密。

雖然修改了主機名,但是免密還是可用的。只是第一次免密的話,需要向 ~/.ssh/known_hosts 註冊信息,也就是需要輸入 yes/no 。問題不大,直接跳過。

7、創建用於修改主機名的 json 文件

> cat hostnames.json
{"create17":{"server.data":"hdp1.data","agent.data":"hdp2.data"}}
  • create17:是 ambari 創建 hdp 的集羣名。
  • key 是舊主機名;value 是新主機名。

8、修改 ambari-server 配置文件

如果你的 mysql 所在的主機名已被修改,那麼就得改一下 ambari-server 的配置文件。否則,這步略過。

編輯 /etc/ambari-server/conf/ambari.properties ,修改 mysql 連接的主機名信息。

要將上述圖片中的 server.data 修改爲 hdp1.data 。

9、執行命令

ambari-server update-host-names hostnames.json

在修改主機名的過程中,可以實時查看 ambari-server 的日誌:tail -f /var/log/ambari-server/ambari-server.log

10、修改 yum 離線 repo 源

如果你的 yum 離線 repo 源是指定的 ip,那麼,這一步也可以略過。

我是用的主機名配置的,所以,要修改成新主機名。

進入 /etc/yum.repos.d 目錄,將 repo 文件中的舊主機名替換成新的。

比如:修改 ambari-hdp-1.repo 文件中的主機名。

11、修改 ambari-agent 配置

如果是修改的 ambari-server 的主機名,那麼就得修改 ambari-agent 配置。否則,這步可以省略。

vi /etc/ambari-agent/conf/ambari-agent.ini

注意:每個 ambari-agent 節點的這個配置文件都要修改。

12、修改 ambari 的 hdp 下載源鏈接

該步驟和第九步是一個道理。都是修改 hdp 相關的 yum 離線源鏈接。如果你的 yum 離線 repo 源是指定的 ip,那麼,這一步也可以略過。

右上角點擊用戶 -> 選擇 Manage Ambari -> Versions -> HDP-3.1.0.0,進入如下圖所示修改保存:

13、再次檢查服務的配置,查看主機名是否已自動修改

經過查看,服務中涉及主機名的部分,已自動替換爲新主機名,nice ~

感興趣的朋友可以研究一下 ambari-server update-host-names 這個命令。

14、驗證 yum install 是否正常

上面的步驟,我們如果修改了 repo 文件的主機名,那麼需要驗證一下。

或者直接通過 ambari 界面嚮導來安裝某服務測試一下,或者直接在 shell 裏面執行,yum install xxx,安裝個東西測試一下。

這一步就不細說了,我測試了一下,是可以正常安裝的。

15、啓動所有服務

如果環境中用到了 nameNode HA ,那麼需要在啓動 zookeeper 之後,執行如下命令:

hdfs zkfc -formatZK -force

在啓動所有服務的時候,發現 hbase 啓動的時候報了錯,報與 hdfs 交互時,無法訪問 server.data 主機名,就很奇怪。通過ambari 界面,去 hdfs 服務的配置裏面搜了一下,發現配置又被更改了,如下圖所示:

難道和剛纔安裝部署 knox 或者新服務有關?不知道了,需要大家去嘗試了。

最後修改了 HDFS 的配置,將舊主機名替換爲新主機名,已安裝的所有的服務就都啓動正常了。

16、啓動 Kerberos

啓用 Kerberos 後,確保已生成了包含新主機名的新 keytab 。

四、總結

以上,就是基於官方文檔和朋友提供的步驟,我自己的實戰演練了。如果還有哪裏修改的不充分,可以私聊我修正補充。這篇文章也算是給支持和使用 ambari 朋友的一份小心意吧。謝謝~

本文由博客一文多發平臺 OpenWrite 發佈!

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