乾貨 | 如何為已有的 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 釋出!