断电后CDH集群艰难重启之路

1.问题描述

  • 问题原因
    运维在凌晨断电重启服务器后,因未忘记将测试环境集群CDH关闭,
    导致CDH的 server/agent集群,Zookeeper集群,hdfs集群,yarn无法重启,
    监控指标全部消失,症状如下

  • cdh各个节点无状态
    在这里插入图片描述

  • agent启动失败
    在这里插入图片描述

  • zookeeper
    在这里插入图片描述

启动顺序

  • CDH server agent
  • zookeeper集群
  • hdfs集群
  • yarn集群

启动CDH集群

  • 启动问题一 启动server后发现没问题,但是启动server所在的agent时,老是出错,启动后很快退出,查看日志报错如下
    401权限问题

  • 问题分析,应该是agent没有成功启动,导致无法找到CDH parcels包

  • 启动问题二,也是agent启动不起来
    - 报错信息
    在这里插入图片描述
    - 定位 查看cloudera-scm-agent.log日志,发现无日志,折腾了一天,再查看cloudera-scm-agent.out,才发现时自己的添加的代码所致
    - 费了大半天的功夫,发现时自己的在源码中加的代码【为了打印集群指标信息】所致,因为不支持中文,真是坑死了自己,服了,于是去掉添加代码解决
    在这里插入图片描述

解决

  • 方案一,参考statckOverflow的文章,可以对服务器进行重启,但有局限性【对于服务器有其他服务不可重启,发现仍然不能解决问题
  • 方案二,搜索问题,发现agent启动后会有supervisor进程守候,防止其异常退出,进行拉起,查看supervisor进程 发现其启动时间与agent不一致,因此报401错误,根据方法提示将supervisor进程杀死,重启agent,问题成功解决,agent启动
    在这里插入图片描述
  • 最终方案
    - 1. 删除 /data/program/cm-5.13.0/lib/cloudera-scm-agent/下上个agent进程配置文件 cm_guid,[禁止删除uuid,要不CDH会出现多个重复的机器节点]
    在这里插入图片描述
    - 删除上个agent进程的supervisor进程,然后启动agent服务
    在这里插入图片描述

zookeeper

  • 在cdm agent未重启成功时,无法启动zookeeper,报错如下,无法在CDH页面查看日志
    在这里插入图片描述
  • 首先查看zookeeper三个节点的myid,没有问题,可以选举出leader[ zookeeper选举leader流程:
    elction[选举myId最大的为leader】->dicovery可用节点->sync zk元数据 --> broadcast 广播】,也没有问题,根据stackoverflow的一篇文章,删除zookeeper datadir下面的离现在最近的、大小为0的log文件,仍然无法解决问题
  • 后面考虑应该是agent的问题,在CDH agent解决后,重新启动

hdfs

  • 在zookeeper启动后,进行启动hdfs后,因为hdfs根据journal node做了HA,发现HA中 secondaryNameNode的journal node /tmp目录空间不足,查看/tmp挂载位置,对该挂载空间进行清理

journalNode异常

  • 发现journaal node状态异常,报错日志如下
The health test result for JOURNAL_NODE_WEB_METRIC_COLLECTION has become bad: The Cloudera Manager Agent got an unexpected response from this role's web server.

在这里插入图片描述

  • 日志如下:
    在这里插入图片描述
  • 实际原因:当机器断电后,重启导致编辑日志损坏了,无法进行编辑日志处理。
  • 解决:查看secondaryNameNode的journalNode服务政策,决定将secondaryNameNode的journalNode的编辑日志和镜像文件复制到namenode
  • 操作,按顺序关闭yarn,hdfs,zookeeper机器,打包备份namenode journalnode 编辑日志和镜像文件【以备失败替换回】,然后将secondaryNameNode 的编辑日志和镜像文件复制到namenode,并修改这些文件目录的用户和权限, 然后重启zookeeper机器,hdfs机器,yarn集群

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Yarn集群

  • resourcemanger报错如下
    在这里插入图片描述
  • 原因发现是jvm参数设置过小导致,原始设置为1g
  • 修改:调整堆内存大小和JVM参数,修改后的结果如下,设置堆内存为4g,young代内存为1g
    在这里插入图片描述

CDH service monitor 无数据

  • 图表无数据
    在这里插入图片描述

  • 查询时 异常
    在这里插入图片描述

  • 查看日志发现,无法创建CDH相关的分区
    在这里插入图片描述

  • 解决:将cloudera-service-monitor备份,然后进行重启

在这里插入图片描述

parcels包分发后,无法建立软链 [ln -s CDH包 CDH]

问题

当解决了主机和对应磁盘、内存不在同一条记录【CDH->所有主机 主机列表】,发现parcels包分发后,仍然无法
正常启动zookeeper,hdfs

报错信息

zookeeper报错
CDH Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

hdfs 在zookeeper完全启动后,启动仍然报错:
namenode报错如下,服务停止:  
 RECEIVED SIGNAL 15: SIGTERM

原因

CDH 启动未寻找到对应的hdfs目录,zookeeper目录,导致无法发现类,namenode发启动

解决

  • 修改CDH config.ini,将zookeeper,hdfs,yarn的依赖重新指定到CDH目录
vim /data/program/cm-5.13.0/etc/cloudera-scm-agent/config.ini

[Hadoop]
cdh_hadoop_bin=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop/bin
cdh_hadoop_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop
cdh_hdfs_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop-hdfs
cdh_hive_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/jar
cdh_httpfs_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/jar
cdh_hue_plugins_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop
cdh_mr2_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop-mapreduce
cdh_yarn_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop-yarn
cdh_zookeeper_home=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/zookeeper
LD_LIBRARY_PATH=/opt/cloudera/parcels/CDH/lib/hadoop/lib/native
  • 修改/etc/hadoop/conf.cloudera.hdfs/hadoop-env.sh,将hdfs,yarn,zookeeper的依赖重新指定到CDH目录
export HADOOP_CLIENT_OPTS="-Xmx268435456 -Djava.net.preferIPv4Stack=true $HADOOP_CLIENT_OPTS"
export LD_LIBRARY_PATH=/opt/cloudera/parcels/CDH/lib/hadoop/lib/native
  • 修改/etc/hadoop/conf.cloudera.yarn/hadoop-env.sh,将hdfs,yarn,zookeeper的依赖重新指定到CDH目录
#export HADOOP_MAPRED_HOME=$( ([[ ! '/usr/lib/hadoop-mapreduce' =~ CDH_MR2_HOME ]] && echo /usr/lib/hadoop-mapreduce ) || echo ${CDH_MR2_HOME:-/usr/lib/hadoop-mapreduce/}  )
export HADOOP_MAPRED_HOME=/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hadoop-mapreduce
export YARN_OPTS="-Xmx825955249 -Djava.net.preferIPv4Stack=true $YARN_OPTS"
export HADOOP_CLIENT_OPTS="-Djava.net.preferIPv4Stack=true $HADOOP_CLIENT_OPTS"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值