1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 从零搭建生产Hadoop集群(五)——CDH集群修改主机名与IP

从零搭建生产Hadoop集群(五)——CDH集群修改主机名与IP

时间:2019-05-10 21:48:25

相关推荐

从零搭建生产Hadoop集群(五)——CDH集群修改主机名与IP

从零搭建生产Hadoop集群(五)——CDH集群修改主机名与IP

一、概述二、完整步骤1.官网推荐步骤:(1)验证下SSL/TLS认证是否所有服务都有配备,确认创建新的SSL/TLS认证。(2)导出Cloudera Manager配置(3)关闭集群所有服务(4)关闭Cloudera Managerment服务(5)关闭Cloudera Manager Server(6)关闭需要改hostname的服务器的Cloudera Manager Agent(7)备份Cloudera Manager Server数据库、Hive元数据库等(8)更新hostname和principals(9)如果重命名hosts的服务器中有namenode,而且已经启用了高可用,则需要重新配置ZooKeeper Failover Controller znodes(10)更新Hive Metastore(11)更新所有服务配置中的数据库hostname(修改过hostname的)(12)启动所有CM管理监控服务和集群服务(13)部署客户端配置 2.实际测试(1)更改hostname服务器包含namenode等主节点的情况(2)更改hostname服务器不包含namenode等主节点的情况

一、概述

在一个已经部署完成并且正在运行的由Cloudera Manager管理的CDH集群中,若需要修改全部或者部分主机的域名,是比较麻烦的事。本文将讲解其具体的流程。

二、完整步骤

1.官网推荐步骤:

(1)验证下SSL/TLS认证是否所有服务都有配备,确认创建新的SSL/TLS认证。

(2)导出Cloudera Manager配置

可使用以下方法导出:

根据这个url获取配置:http://[cm_hostname]:7180/api/[api_version]/cm/deployment。curl -u admin:adminhttp://[cm_hostname]:7180/api/[api_version]/cm/deployment > cme-cm-export.json

(3)关闭集群所有服务

(4)关闭Cloudera Managerment服务

(5)关闭Cloudera Manager Server

/etc/init.d/cloudera-scm-server stop

(6)关闭需要改hostname的服务器的Cloudera Manager Agent

/etc/init.d/cloudera-scm-agent stop

(7)备份Cloudera Manager Server数据库、Hive元数据库等

使用mysqldump或者pg_dump等命令

(8)更新hostname和principals

1.更新目标服务器的hostname,包括/etc/hosts、dns、/etc/sysconfig/network、hostname等,确保已删除旧的hostname;

2.如果需要更改Cloudera Manager Server的hostname,则需要另外在所有agent的/etc/cloudera-scm-agent/config.ini文件更新CM Server的hostname

3.如果集群有启用kerberos,则需要做以下步骤:

(1)在Cloudera Manager 数据库设置merged_keytab值:update ROLES set MERGED_KEYTAB=NULL;

(2)从KDC数据库删除旧hostname cluster service principals。在kadmin.local交互界面中使用delprinc

(3)启动Cloudera Manager数据库与Cloudera Manager Server;

(4)启动重命名hosts的CM agent

(5)在CM Web页面重新生成新hostname的principals

如果集群没有启用kerberos,则需要做以下步骤:

(1)启动Cloudera Manager数据库与Cloudera Manager Server;

(2)启动重命名hosts的CM agent,这时查看CM Web页面的主机页面,可以看到主机名称已经更新为最新状态,从CM数据库中也可以看出来。

(9)如果重命名hosts的服务器中有namenode,而且已经启用了高可用,则需要重新配置ZooKeeper Failover Controller znodes

1.启动zookeeper 集群

注意:此时所有其他服务,特别是HDFS/ZKFC,不能处于运行状态

2.在某一台zookeeper服务器,执行zookeeper-client

(1)若集群没有启用kerberos,则直接跳过第一步;若集群配置了kerberos,配置zk认证如下:

点击“HDFS”服务->点击“实例”页面->点击“Failover Controller”角色->点击“进程”页面;在“hdfs/hdfs.sh [“zkfc”]”程序中,点击“显示”,查看“core-site.xml”,查看ha.zookeeper.auth属性,获取“digest:hdfs-fcs:”后为密码,如TEbW2bgoODa96rO3ZTn7ND5fSOGx0h;执行addauth:addauth digest hdfs-fcs:TEbW2bgoODa96rO3ZTn7ND5fS

(2)验证HA znode是否存在:ls /hadoop-ha

(3)删除HDFS znode:rmr /hadoop-ha/nameservice1

(4)如果没有运行JobTracker的高可用,则删除HA znode:rmr /hadoop-ha

3.点击”HDFS”服务->点击”实例”tab->选择“操作”->点击“在zookeeper中初始化HA状态”

(10)更新Hive Metastore

1.备份元数据库

2.点击“Hive”服务->点击“操作”->点击“更新Hive Metastore Namenodes”

(11)更新所有服务配置中的数据库hostname(修改过hostname的)

包括Cloudera Management Service roles (Reports Manager, Activity Monitor, Navigator Audit and Metadata Server) 和集群服务如 Hue、Hive等。若直接指定 IP的,忽略此步。

(12)启动所有CM管理监控服务和集群服务

(13)部署客户端配置

2.实际测试

官网的推荐步骤是可以完成这个功能,不过通过实际测试,可以使用简洁有效的步骤。

(1)更改hostname服务器包含namenode等主节点的情况

1)停止集群所有服务器,除了CM管理与监控服务

2)备份所有数据库

3)修改需要更改hostname 的服务器的/etc/sysconfig/network、hostname,更新所有服务器的/etc/hosts文件

4)重启需要更改hostname 的服务器的CM Agent

重启之后,CM Web页面应该就可以显示出更改后的主机名

5)如果重命名hosts的服务器中有namenode,而且已经启用了高可用,参考上面第九、十步

6)更新所有服务配置中的数据库hostname(修改过hostname的),若直接指定 IP的,忽略此步

7)启动所有集群服务

8)部署客户端配置

(2)更改hostname服务器不包含namenode等主节点的情况

若修改的仅仅是一台datanode的主机名,还需要这么大费周章吗?并不需要。数据节点更改域名步骤:

1)关闭需要更改域名的服务器上的相关进程(datanode、nodemanager、regionserver等)

2)修改需要更改域名的服务器的hostname(hostname、/etc/sysconfig/network)及所有服务器的/etc/hosts文件

3)重启需要更改域名的服务器的CM Agent,顺利的话会在CM Web页面上看到更新后的主机名

4)启动关闭的datanode进程,可以看到datanode重新向NN注册了,并且其上的block不会发生迁移

5)启动关闭的nodemanager、regionserver等进程,一般均可正常运行。

6)部署客户端配置

若修改服务器的IP,步骤应该差不多。限于没有可测试环境,暂不测试。

欢迎关注我的微信公众号

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。