热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

磁盘坏道引起的hbase查询错误

1、现象说明早上,客户反映某些日期的历史数据查询不出来(我们系统将历史的汇总数据是保存到Hbase中),从查询端的日志看查询失败(查询端是erlang写的分布式查询引擎)。erlang是通过

1、现象说明
早上,客户反映某些日期的历史数据查询不出来(我们系统将历史的汇总数据是保存到Hbase中),从查询端的日志看查询失败(查询端是erlang写的分布式查询引擎)。erlang是通过HBase提供的thrift 服务接口来查询hbase的,所以进一步去查看thrift server的日志信息,发现如下的错误:
这里写图片描述

备注:并不是所有的查询都失败,只有某些站点的某些日期的数据查询失败。

2、问题的排查和定位
从日志Caused by: java.io.IOException: Failed to read compressed block at 212328226 和 Caused by: java.io.IOException: Invalid HFile block magic: 可以初步判断应该是底层保存的文件出现了问题。
(1)首先登录到NameNode web界面,查看是否有corrupted的block的问题,发现一切正常
(2)然后登录到Hbase的web界面,查看对应的表sum_profile_non_filter_olap_d是否正常,发现一切正常
(3)然后运行一下hbase hbck查看是否有不一致的问题,发现也一切正常
(4)进一步使用hdfs fsck来检查上面出错的信息所对应的文件,发现一切正常
这里写图片描述

(5)根据(4)的输出来定位报错的文件的所有block所在的机器,登录到这些机器上,然后分别查看hbase region server和datanode 的日志,但是并未发现到任何的异常输出
(6)根据1-5,排除了HDFS和Hbase服务的异常情况,唯一剩下的就是服务器的硬件问题了。根据上面的报错信息,怀疑是磁盘出现了问题,但是磁盘出问题会报警啊?
使用下面的命令来查看磁盘的健康情况:
smartctl -H /dev/sdc

[root@dn-5-45 ~]# smartctl -H /dev/sdj
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-504.16.2.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

SMART Health Status: FAILURE PREDICTION THRESHOLD EXCEEDED: ascq=0x5 [asc=5d, ascq=5]

终于找到原因了,原来是磁盘有了坏道。。。。(线上的集群已经运行快三年了,出现磁盘坏道的问题也算正常)

3、问题的解决
对于低版本的hadoop,只能将对应的磁盘从dfs.datanode.data.dir目录上去除掉,然后重启DataNode来生效。
最新版本的hadoop引入了-reconfig来动态的更新结点的配置信息。
(1)将出错的磁盘对应的目录从dfs.datanode.data.dir配置项上去除掉
(2)使用下面的命令来让DataNode重新加载配置文件(注意端口号为:50020)
sudo -u hdfs hdfs dfsadmin -reconfig datanode dn-5-45.ptfuture.com:50020 start
(3)使用下面的命令来确定reconfig是否执行完成
sudo -u hdfs hdfs dfsadmin -reconfig datanode dn-5-45.ptfuture.com:50020 status

4、执行完上面操作之后,客户端查询一切恢复正常

备注:为什么磁盘出问题了,没有报警呢?登录到监控系统,发现磁盘的监控是有warn提醒的,只是当前的监控级别针对该warn并未发出报警信息,通知运维同学补充上对应的监控信息。


推荐阅读
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
author-avatar
Paul_Zhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有