1、業務需求說明:由于公司網絡進行了整改,随之而來的就是對應的ip網段發生了變化,其中我的hadoop的叢集各主機的ip也相應的發生了改變,是以需要對各主機進行修改ip。
2、具體操作:
首先停止cdh各元件的服務,修改各主機的ip。修改完後,本以為完事兒了,啟動Cloudera Management Service時,發現啟動失敗,無法啟動。那麼問題就來了,如何通過cloudera-manager來修改主機的ip呢?郁悶的是Cloudera-Manager并沒有提供修改叢集ip的方法,是以,需要修改主機的ip隻能另辟蹊徑了。
3、柳暗花明又一村。
通過在網上搜尋,發現很多網友也遇到了我同樣的問題,其中有些人說隻能重裝,個人感覺這肯定不會這樣子,是以這個方法抛棄。于是功夫不負有心人,在網上看到了有人通過指令行的方式來修改主機的ip。這個可以。下面将該方法步驟詳細介紹一下:方法的主要思想是:由于cloudera-manager在安裝的時候,會配置相應的資料庫,該資料庫是用來存儲叢集的所有的配置資訊。cloudera-mamanger每次啟動的時候,都會從資料庫中讀取這些配置資訊,是以想修改主機的ip,隻需要修改存在資料庫中的主機的ip即可。
4、具體方法
(1)首先在安裝cloudera-manager的主機上,停止所有的cloudera管理程序
service cloudera-scm-agent stop
service cloudera-scm-server stop
(2)檢視postgresql 的scm使用者的密碼
grep password /etc/cloudera-scm-server/db.properties
(3)登陸postgresql 資料庫
輸入指令:psql -h localhost -p 7432 -U scm
提示你輸入密碼,密碼就是上面步驟(2)的密碼。
(4)修改postgresql資料庫中的資料(即主機的ip)
1) 檢視pg中存儲情況
select host_id, host_identifier, name, ip_address from hosts;
查詢的結果如下:
host_id | host_identifier | name | ip_address
----------------------------------------------------------------------------
3 | hadoop.slave1 | hadoop1 | 192.10.1.217
2)修改各主機的ip(分别修改各主機的ip)
update hosts set (ip_address) = (‘192.10.2.217’) where name=‘hadoop1’;
3)退出postgresql資料庫
輸入指令: \q 即可
(5)修改所有機器的cloudera-scm-agent的配置檔案
1)打開cloudera-scm-agent的配置檔案
vi /ect/cloudera-scm-agent-/config.ini
2)修改server_host的值(這個是指定cloudera-scm-server的ip)
将該值設定為cloudera-scm-server的ip即可。
(6)修改各主機的 /etc/hosts檔案,将現在的hostname與IP位址對應上
(7)重新開機服務
service cloudera-scm-agent start
service cloudera-scm-server start
注:如果agent啟動失敗,檢視是否9000或9001端口被占用
netstat -nap | grep 9000
netstat -nap | grep 9001
如果被占用,kill –9 相關程序,再重新啟動agent服務即可.
(8)重新開機cloudera-manager上的服務即可。
作者:AA趙師傅
來源:CSDN
原文:https://blog.csdn.net/zcb_data/article/details/80743584
版權聲明:本文為部落客原創文章,轉載請附上博文連結!