Cloudera-Manager修改集羣主機的IP

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上的服務即可。

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