版本: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 發布!