1.概述
生产CDH集群硬盘不足,HDFS datanode节点数据不平衡,历史管理角色安装混乱,全部节点需要硬盘扩容。
迁移要求
- HDFS数据不丢失
- Hive元数据不丢失
- 无临时过渡服务器
- 不能影响用户计算使用
- CDH5.11.0只能使用centos6.5-6.9x版本
- 大数据组件角色迁移
- Cloudera Management Service服务迁移
- 服务器由物理机全部改造为虚拟机
- 主节点不迁移
- 角色迁移
2.迁移
整个迁移的逻辑是一台一台的节点处理,每个节点移除当前节点,重装系统,扩容磁盘,RAID修改为0,系统升级为centos7.6,并配置虚拟机,新节点扩容至虚拟机,新节点扩容安装看世上最全安装文档,整体迁移分为俩部分:
2.1 第一部分
普通节点,只安装了HDFS Datanode、MapReduce TaskTracker、YARN NodeManager等普通角色的节点,该节点需要考虑迁移中HDFS数据不丢失,整体思路为移除 à 升级 à 新增,有俩种方案,
方案一(安全):
cm界面 -> HDFS -> 实例 -> 勾选移除节点 -> 解除授权 - > 停止 -> 删除,其它角色暂停 -> 删除 -> service cloudera-scm-agent stop 暂停CDH代理服务 –> 进行服务器扩容和维护操作 –> 新节点集成CDH –> 重新安装组件角色 –> 数据平衡
本方案,在HDFS解除授权时要花大量时间,重要数据,且没有数据源的时候,建议这么使用。
方案二(效率):
cm界面 -> HDFS -> 实例 -> 勾选移除节点 - > 停止 -> 删除,其它角色暂停 -> 删除 -> service cloudera-scm-agent stop 暂停CDH代理服务 –> 进行服务器扩容和维护操作 –> 新节点集成CDH –> 重新安装组件角色 –> 数据平衡
本方案,比较高效,而且是单节点宕机,并且有数据源的情况下,可以不考虑当前节点数据
2.2. 第二部分
组件管理角色迁移,不同管理角色迁移方式不同
2.2.1. Cloudera Management Service迁移
以下操作迁移后,历史监控数据会丢失,不丢失有其它方案,要提前备份数据,因历史监控数据对环境无用,故不适用
2.1.1.首先查看Cloudera Management Service下有哪些服务,cdh版本为5.11:
可以看到基本上有以上6个角色;
停止所有角色,并执行删除;
找到集群中另外一个节点,添加对应角色,我这里添加到hadoopNode4上:
元数据库为mysql,在hadoopNode6上;
需要将mysql驱动器scp到hadoopNode4上;
[root@hadoopNode6:/etc/yum.repos.d]# scp /usr/share/java/mysql-connector-java.jar hadoopNode4:/usr/share/java/
The authenticity of host 'hadoopnode4 (192.168.33.96)' can't be established.
RSA key fingerprint is 4f:77:13:cc:24:b7:b7:23:32:d0:fa:31:5d:ff:e0:2a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hadoopnode4,192.168.33.96' (RSA) to the list of known hosts.
mysql-connector-java.jar
点击继续,然后启动新添加的服务;
到cm dashboard中查看,提示有过期配置,重启过时服务;
重启完后,查看dashboard,恢复正常;
2.2.2. Hbase Master 角色
CDH---->HBase---->实例---->选择Master(备用)---->停止---->删除
CDH---->HBase---->实例---->添加角色实例---->Master 选择新主机---->完成---->返回实例页面---->启动新加入的Master(此时新加入的Master为备用节点)
2.2.3. HBase Thrift/REST Server 角色
停止业务对HBase Thrift/REST Server 的调用。
CDH---->HBase---->实例---->选择HBase Thrift/REST Server---->停止
CDH---->HBase---->实例---->添加角色实例---->HBase Thrift/REST Server ---->完成---->返回实例页面---->启动新加入的HBase Thrift/REST Server 角色
CDH---->HBase---->实例---->选择旧的HBase Thrift/REST Server 角色---->删除
备注:无数据目录,无需备份,无依赖组件,无需重启集群。
2.2.4. HDFS Balance 角色
CDH---->HDFS---->实例---->Balancer---->删除。(目前处于不适用状态,无需停止)
CDH---->HDFS---->实例---->添加角色实例---->Balancer---->完成。(无需点击启动)
备注: 无数据目录,无需备份,
2.2.5. HDFS NFS GateWay 角色
迁移到新节点上,需要安装rpcbind,并启动此服务【sudo service rpcbind restart 】。
CDH---->HDFS---->实例---->NFS Gateway角色---->停止---->删除
CDH---->HDFS---->实例---->添加角色实例-->NFS Gateway---->完成---->启动新加入的NW角色。
备注: 无数据目录,依赖rpcbind服务。无需重启其他服务,
2.2.6. YARN JobHistory Server 角色
CDH---->YARN---->实例---->JobHistory Server角色---->停止---->删除
CDH---->YARN---->实例---->添加角色实例---->JobHistory Server角色---->启动
重启过时服务,YARN、Hive、Spark、Spark2等过时服务。
备注: 无数据目录,无需备份,无依赖服务,
2.2.7. YARN ResourceManager 角色
CDH---->YARN---->实例---->ResourceManager角色---->停止
CDH---->YARN---->实例---->添加角色实例---->ResourceManager角色---->完成---->启动新加入的ResourceManager角色
CDH---->YARN---->实例---->旧的ResourceManager角色---->删除
重启过期服务,会重启YARN和HIve、Spark、Spark2过期服务
备注: 无数据目录,无需备份。
2.2.8. OOZIE SERVER角色
CDH---->Oozie---->实例---->Oozie Server角色---->停止
CDH----> Oozie ---->实例---->添加角色实例--->完成---->启动新加入的OOZIE角色
该角色迁移要重新配置源数据库,
3.问题
3.1 oozie调度sqoop,无法连接hive源数据,手动调度sqoop没问题
该问题是hive源数据地址变更后,oozie中的hive-site.xml配置,没有修改,该配置在hdfs中
3.2 hive其它节点无法连接hive cli
该原因是CDH其它节点连接,需要安装hive gateway代理角色。