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