美文网首页
HBase HDFS的一次升级问题

HBase HDFS的一次升级问题

作者: sparkle123 | 来源:发表于2020-10-25 13:01 被阅读0次

背景

  • 老版本HDFS存在空间泄漏以及空间预分配bug导致存在HBase RS进程挂掉风险
  • RS内存配置过高会导致系统内存不足造成请求抖动和OOM RS进程挂掉,RS默认配置77G(60%),其他组件默认配置40G(31%),修改重启后RS 62G(48%)避免系统内存不足。

经过

升级core-2过程中,高风险节点core-5(内存水位解决临界值)发生宕机,造成业务写入抛错,
core-5宕机恢复流程完成,hbase服务恢复,Flink任务Failover后自动消费积压的kafka数据。

直接原因

本身带病的高危集群,升级HDFS过程中要移动region做热升级,触发内存临界值节点导致RS进程挂掉,
带来了写入该RS的一组数据(rowkey分布)写入失败。

思考:

1、升级,重启等高危操作,先切换至备库上(需要备库版本新,无大缺陷,主备规格一致),主库滚动重启OK后,再从备库切换为主库。

2、升级,重启等高危操作,不切换到备库上,在主库有宕机的情况下,人工在后台切换主备,耗时数秒。
主备容灾作为极端情况下的兜底方案,需要人为手动去切换主备库,
数秒时间差内还是会有写入数据失败的情况发生,
后期业务侧的异常捕获代码中,将写入失败的数据分流至第三方存储(MySQL或MQ)中,
即业务状态数据写入HBase在超时报错情况下,对缓存做数据做写入重试,避免发生数据不一致,
同时可以解决之前已经存在的 由于HBase抖动带来数据不一致,需要产品运维提工单修改数据的偶发问题。

关于Dual-Service

双活方案:99%流量打入A集群,读写RT较高的毛刺数据自动打入B集群,
数据通道对A,B集群之间数据做百ms级的延时同步。
带状态的业务侧不能容忍的延时,Dual-Service方案不适合这样的场景。

相关文章

网友评论

      本文标题:HBase HDFS的一次升级问题

      本文链接:https://www.haomeiwen.com/subject/hpftdktx.html