1. 程式人生 > 其它 >乾貨 | 如何為已有的 ambari 叢集修改主機名

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