前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重庆某项目生产集群扩容问题总结及复盘

重庆某项目生产集群扩容问题总结及复盘

作者头像
Fayson
发布2018-08-17 16:59:01
1.1K0
发布2018-08-17 16:59:01
举报
文章被收录于专栏:Hadoop实操Hadoop实操

1.文档编写目的


本文主要讲述重庆某项目生产集群扩容项目问题总结及复盘。其中部分问题之前有写过相关文档,可参考我之前写的文章《CDH集群安装YARN无法正常启动及解决办法》、《HDFS运行Balancer失败及问题解决办法》、《如何为CDH集群配置机架感知

  • 测试环境:

1.操作系统版本为Redhat7.2

2.CM和CDH版本为5.11.2

3.HDFS已启用HA

2.问题清单

2.1.hosts文件同步问题导致的API功能异常


【问题描述】

生产集群新增节点后,业务系统对外开放的大部分API功能异常,无法获取到HBase数据。

【问题原因】

生产集群未配置DNS服务器,集群内部节点通过/etc/hosts文件解析主机名和主机IP的映射关系,新增节点后,需要更新hosts文件并同步至集群内部所有节点。CDH集群内部的所有大数据服务器hosts文件全部更新完成,但是应用服务器不在CDH集群内,导致应用服务器的hosts文件未及时更新。

【解决办法】

更新应用服务器的hosts文件。

【建议】

使用批量拷贝文件脚本前,如果目标服务器上存在同名文件,强烈建议先将文件备份,再执行批量拷贝文件脚本!

2.2.HDFS运行Balancer失败


【问题描述】

运行HDFS的Balancer命令后,中止过该命令一次,再次运行Balancer命令出现如下报错:

异常信息提示为:”java.io.IOException: Another Balancer is running.. Exiting ...”

经过仔细检查,并未发现有任何运行Balancer的主机。

【问题原因】

HDFS在运行Balancer的时候,会将运行Balancer的主机名写入到balancer.id这个文件里面,通过这个Mark File来检测Balancer是否运行,该文件存放在HDFS上的/system目录下。

【解决办法】

以“balancer.id”命名的Mark File存储了运行Balancer主机的主机名,位于HDFS的/system目录下,如果执行Balancer出现”java.io.IOException:Another Balancer is running.. Exiting...”这类异常问题,先查看“balancer.id”文件内容,检查是否有其他主机在运行Balancer,如果没有,则删除该文件,重新执行Balancer即可恢复正常。

【建议】

如果HDFS的Balancer在非正常情况下终止,建议在重新执行Balancer前,清除掉balancer.id这个文件。详细内容可参考《HDFS运行Balancer失败及问题解决办法

2.3.NodeManager启动失败


【问题描述】

在使用CDH5.11.2版本时,新增YARN的NodeManager角色,在启动角色实例时,出现如下异常:

异常信息为:”IO error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: Permission denied”

在Redhat7.2操作系统上部署5.11.2版本的CDH集群以及为该版本集群扩容节点都遇到过该类问题

【问题原因】

故障节点的/var/lib/hadoop-yarn/目录权限为000

【解决办法】

更改hadoop-yarn目录权限为755,重启NodeManager角色实例。

【建议】

在添加NodeManager之前,在相关节点上手动创建/var/lib/hadoop-yarn目录,可以避免出现该问题。如果节点数量太多,可通过批量执行命令脚本创建目录。详细内容可参考《CDH集群安装YARN无法正常启动及解决办法

2.4.机架感知配置失效


【问题描述】

机架感知配置失效,原来配置生效的机架感知被清除,还原为默认机架。

【问题原因】

机架感知脚本存放在“/etc/hadoop/conf.cloudera.hdfs/”目录下,该目录存放HDFS的客户端配置,在重新部署HDFS客户端配置时,会将机架感知脚本清除。

【解决办法】

将机架感知脚本存放在“/opt/cloudera/parcels/CDH/”目录下。

【建议】

机架感知脚本应存放在所有Namenode上,且存放路径相同。不应将机架感知脚本存放在CDH组件配置目录下,最好能放在一个固定目录下。详细内容可参考《如何为CDH集群配置机架感知

2.5.Zookeeper迁移数据后重启失败


【问题描述】

修改Zookeeper数据目录存放路径后,重启Zookeeper失败。

【问题原因】

迁移Zookeeper数据需要创建/XXX/XXX/version-2/目录,并将目录属主和属组都赋予Zookeeper,否则Zookeeper无法向新数据目录写入数据。

【解决办法】

重启Zookeeper前,需要手动创建/data6/var/lib/zookeeper/version-2/目录,确保目录权限为755,并更改目录属主和属组为:zookeeper。

完成上述操作后,重启Zookeeper即可。

【建议】

可以将Zookeeper原始数据目录内的所有数据拷贝到新数据目录,并保留文件属主和属组,然后重启Zookeeper。

2.6.Mysql数据备份时间过长


【问题描述】

使用”du -sh /var/lib/mysql”命令查看Mysql数据总和,发现是140GB左右,但用mysqldump工具备份数据目录产生的文件达到了300GB以上,并且还没有备份完成的趋势。

【问题原因】

/var/lib/mysql目录下有一个nas的软链接,该链接连接到数据盘的nas目录,通过du -sh命令查看数据盘上nas目录的大小,发现有3个TB数据。

【解决办法】

由于之前查看mysql数据总量,才140GB,使用的是”mysqldump -uroot -p -A > all.dump”的方式进行全量备份。现在发现数据量太大,主要是Navigator Audit Server对应的nas数据库存放了大量审计数据,由于数据量太大,不备份该数据库的文件内容。只对重要数据库进行备份,使用如下命令”mysqldump -uroot -p -B databaseName > databaseName.dump”

【建议】

进行数据库全量备份之前,一定要检查数据库目录下是否存在软链接,否则容易对情况误判。nas数据库存放的数据最好还是要定期清理。

3.总结


1.在项目实施前,全盘规划很重要,画实施流程图是很有必要的,可以避免走很多弯路。

2.细节方面有待加强,有些问题其实是能够避免的,比如Mysql数据备份问题。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.文档编写目的
  • 2.问题清单
    • 2.1.hosts文件同步问题导致的API功能异常
      • 2.2.HDFS运行Balancer失败
        • 2.3.NodeManager启动失败
          • 2.4.机架感知配置失效
            • 2.5.Zookeeper迁移数据后重启失败
              • 2.6.Mysql数据备份时间过长
              • 3.总结
              相关产品与服务
              专用宿主机
              专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档