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

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数据备份问题。


本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

3.9K90
来自专栏破晓之歌

webpack项目初始化和基于模块的脚手架搭建

http://localhost:8088/dist/view/index.html

15510
来自专栏菩提树下的杨过

hadoop: hive 1.2.0 在mac机上的安装与配置

环境:mac OS X Yosemite + hadoop 2.6.0 + hive 1.2.0 + jdk 1.7.0_79 前提:hadoop必须先安装,且...

34580
来自专栏张泽旭的专栏

hadoop集群安装

分布式安装 修改IP地址和主机名(主机名可以不用修改) hadoop1.com 192.168.213.146 192.168.213.255 255.255....

15420
来自专栏Hadoop实操

CENTOS7.2安装CDH5.10和Kudu1.2(一)

本文档描述CENTOS7.2操作系统部署CDH企业版的过程。Cloudera企业级数据中心的安装主要分为4个步骤:

44660
来自专栏龙首琴剑庐

基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)

1、什么是CSRF? 已经有很多博文讲解其过程和攻击手段,在此就不重复了。 O(∩_∩)O 不清楚的同学,请自行搜索或按链接去了解: http://blog...

56370
来自专栏Brian

Linux 系统优化

概述 在Linux 学习笔记一大体介绍了一些简单的Linux知识和一些简单的优化。下面我们来学习一下Linux和Linux一些安全知识(Linux是基于内核为...

52060
来自专栏Java编程技术

Java网络编程基础篇

网络通讯在系统交互中是必不可少的一部分,无论是面试还是工作中都是绕不过去的一部分,本节我们来谈谈Java网络编程中的一些知识,本chat内容如下:

58610
来自专栏张善友的专栏

Windows Server 2003网络负载均衡的实现

       在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。   那么,有没有一个办法或者技术来解决此类问题...

23460
来自专栏xingoo, 一个梦想做发明家的程序员

Spark监控官方文档学习笔记

任务的监控和使用 有几种方式监控spark应用:Web UI,指标和外部方法 Web接口 每个SparkContext都会启动一个web UI,默认是40...

38890

扫码关注云+社区

领取腾讯云代金券