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

上一篇:[LeetCode#163] Missing Ranges


下一篇:MyEclipse - 解决 MyEclipse build workspace慢,validation javascript更慢的问题