`
nanjingjiangbiao_T
  • 浏览: 2629990 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

HBase碰到的问题

 
阅读更多

目前NoSQL产品最被人诟病的就是其稳定性,不得不承认,目前HBase离做到数据库那样的高稳定还有距离(丢数据、不能读写、DDL失败等严重问题),这篇blog将用来记录我们在运维HBase时碰到的问题(会不断更新),希望能给使用HBase的同学有一些帮助。

1、单台regionserver的region数很多后写速度疯狂下降
具体请见:
http://koven2049.iteye.com/blog/1144526

2、region server OOM
碰到过两种造成region server OOM的状况:
* rowKey设计的问题,写的一直是同一行,version配置的又比较大,无法split,从而导致compact时候需要压缩一个巨大的文件;
* 应用方create table时,通过setMaxFileSize设置了一个3G的值,导致compact时需要消耗6G的空间,从而OOM。
造成这两次OOM的原因都是由于compact,因此需要修改compact,避免OOM,官方在0.92里做了一定的处理,具体可见:
HBASE-3290

3、master OOM
当系统中有很多region时,很容易就造成master OOM了,具体请见:
HBASE-3906,HBase 0.90.4或以后版本的同学可忽略此问题。

4、.meta.表hole
hbck时,出现了Chain of regions in table … is broken; edges does not contain …,造成这个的原因是某张表的regions的startKey和endKey没有形成闭环,这会导致某些数据无法读写,出现这个问题时,最大的麻烦是不能随意去进行修复,因为有可能会导致丢数据。
我们之前碰到这个问题的原因是split的时候offlineParentInMeta超时了,具体描述大家请见:
http://koven2049.iteye.com/blog/1199519,这个bug我们已修复并提交给官方,为HBASE-4562,使用HBASE 0.90.5或以后版本的同学可忽略此bug。
但我们并不确定修复了这个bug就能避免.meta.表不出现hole现象,因此后面会考虑做个工具来安全的修复这个问题。

5、.meta.表中出现重复的startKey/endKey
hbck时,出现了Chain of regions in table …contains less elements than are listed in META; visited=,出现此情况非常严重,此时客户端读写会出现混乱或挂起的现象,可能会导致丢数据,而且很难恢复。
我们出现这个现象的原因是官方的这个bug造成的,这个bug已经修复,具体请见
HBASE-3946,使用HBASE 0.90.4或以后版本的同学可忽略此bug。
但我们并不确定修复了这个bug就能避免.meta.表不出现重复的startKey/endKey,因此后面会考虑做个工具来安全的修复这个问题。

6、master进行split hlog时有可能造成数据丢失
具体请见:
http://koven2049.iteye.com/blog/1199669,目前官方未修复此bug,请使用HBase的同学自行评估进行修复。

7、在读取大数据时造成写的速度也下降
这个的原因在于HBase的单连接通信效率低的问题,目前官方未有此方面的修复方法,暂时来看只能是要么将读写分开,要么折腾成多个连接。

8、disable表失败
现象为disable表时导致master挂掉,无法disable。
造成master挂掉的原因为表中有region处于没有serverAddress的现象,而表此时又处于disabling的状态,导致无法enable,修复的方法可以是先从zk节点的table下删除此表,然后再去disable,通常是可以的。
官方相关的两个patch请见:
HBASE-3892HBASE-4064

9、.meta.表和root表被重复分配到两台region server
具体请见:
http://koven2049.iteye.com/blog/1199667

分享到:
评论

相关推荐

    hbase安装,节点添加,移除,常见问题解决

    在运行过程中,可能会遇到各种问题,这里列举一些常见的异常处理方法: 1. **RegionServer宕机**:检查节点的系统日志,找出故障原因,可能是内存不足、磁盘满等问题。修复后重启RegionServer服务。 2. **Zookeeper...

    HBase配置文件与HBase doc文档

    7. **监控和故障排查**:如何通过HBase的仪表盘和日志进行监控,以及在遇到问题时的排查方法。 8. **复制和备份**:HBase支持数据复制以提高可用性,文档会解释如何配置复制和进行数据备份与恢复。 9. **安全与...

    hbase1.x 跟2.x比较.docx

    随着业务的增长,HBase 老集群(使用 HBase 1.0 版本)遇到了多个问题,包括节点基础环境不一致、服务器运行多年已过保、性能瓶颈等。为解决这些问题,个推决定将老集群升级并迁移到 HBase 2.0 新集群。 在升级过程...

    hbase客户端连接工具winutils-2.2.0.zip

    9. **错误排查**:在配置过程中可能会遇到各种问题,如网络不通、权限错误等。通过日志和错误信息可以定位并解决问题。 总之,`winutils-2.2.0.zip`是Windows环境下连接HBase集群的重要组件,正确配置和使用它能...

    HBase不睡觉书.pdf HBase不睡觉书

    读者还能从中了解到如何解决HBase在实际应用中可能遇到的问题,如数据倾斜、性能瓶颈等。 总之,《HBase不睡觉书》是一本全面介绍HBase的书籍,无论是初学者还是有经验的开发者,都能从中获得宝贵的知识和实践经验...

    hbase-0.94脚本hbase在cygwin的环境的bug

    在实际操作中,如果遇到类似问题,首先应检查HBase的日志文件,寻找错误信息或异常堆栈,这有助于定位问题的具体原因。其次,可以尝试在Cygwin环境下使用其他开源工具来辅助调试,如strace或gdb。最后,不要忘记查阅...

    zookeeper+hbase集群搭建

    在本文中,我们将深入探讨如何搭建一个Zookeeper和HBase集群,以及在过程中可能遇到的常见问题和解决方案。...在实际操作中,遇到问题时要善于排查,理解错误原因并采取相应措施解决,这将有助于提升我们的技术能力。

    hbase-0.98.1源码包

    通过阅读源码,开发者可以更深入地理解HBase的工作原理,优化应用程序性能,解决遇到的问题,或者为HBase贡献新的功能和改进。此外,还可以对比不同版本的源码,了解HBase的发展历程和技术演进。

    python3连接hbase包

    由于网上许多教程和代码示例可能仍基于 Python2,对于那些正在使用 Python3 的开发者来说,可能会遇到兼容性问题,导致运行错误。因此,这个包的出现解决了 Python3 用户在连接 HBase 时遇到的困扰。 首先,我们...

    Python访问Hbase的库文件

    然而,有时候在尝试通过`from hbase import Hbase`导入HBase模块时,可能会遇到`ImportError`,这通常是由于Python标准库中的hbase模块存在问题或不兼容。 为了解决这个问题,开发者通常会寻找替代方案,其中两个...

    thrift操作Hbase数据库

    在操作Hbase时,可能会遇到如网络错误、权限问题或数据冲突等异常,需要进行适当的异常处理,确保程序的健壮性。 6. **性能优化** 在大量数据操作时,可以考虑使用批处理(Batch)功能,一次性处理多个请求,提高...

    Hbase调用JavaAPI实现批量导入操作

    在批量导入过程中,可能会遇到网络异常、Region Server故障等问题,因此需要实现错误处理和重试策略,确保数据的完整性和一致性。 7. **监控和调试**: 通过HBase的监控工具(如HBase Master UI)和日志系统,...

    hbase0.94java源代码

    HBase是Apache Hadoop生态系统中的一个分布式、高性能、版本化、列族式数据库,它主要设计用于处理海量数据...同时,了解源代码有助于开发者更好地利用HBase特性,优化数据访问性能,以及在遇到问题时进行排查和解决。

    大数据书籍-Hbase架构设计(高清)

    5. **性能优化**:分享在项目实践中遇到的问题及解决方案,如Region大小调整、Compaction策略、BlockCache的使用等,以提高Hbase的读写性能。 6. **案例分析**:通过实际项目案例,展示Hbase在互联网、物联网、日志...

    HBase项目文档

    遇到问题时,需要检查HBase的日志文件,查看错误信息,然后根据错误信息进行解决。例如,如果 RegionServer无法启动,可能是由于 RegionServer的配置文件出错,需要检查配置文件并进行修改。 八、部分命令 HBase...

    mysql导入hbase所需要的jar

    在IT行业中,数据库之间的数据迁移是一项常见的任务,MySQL和HBase...同时,了解Sqoop的工作原理、JSON处理以及HBase的特性也是非常重要的,这有助于我们在遇到问题时能够迅速定位并解决问题,保证数据迁移的顺利进行。

    Hbase总结.docx

    资源回答:Rowkey设计时需要遵循三大原则?你们在使用hbase在使用遇到的问题?Hbase优化,你们是怎么做的?Hbase热点(数据倾斜)问题你们是怎么处理的?属于高频面试题

    hbase基本概念和hbase shell常用命令用法

    **HBase基本概念** HBase,全称是Apache HBase,是一个分布式的、面向列的...同时,HBase与其他大数据组件(如Hadoop MapReduce、Hive、Spark等)的集成也是日常工作中经常遇到的问题,需要熟练掌握相关接口和配置。

    Hbase不睡觉书(高清)

    《Hbase不睡觉书》是一本专注于Hbase数据库性能优化和问题分析的专业书籍。Hbase作为Apache的一个开源项目,是...通过阅读这本书,你可以掌握如何使Hbase在大数据处理中发挥出最大的效能,解决实际工作中遇到的挑战。

    hbase-echarts.zip

    5. **错误处理和日志记录**:确保在与HBase交互时遇到问题时,有适当的错误处理机制和日志记录,方便问题排查。 这个项目对于想要学习如何使用Java操作HBase以及如何将HBase数据展示为可视化图表的开发者来说,具有...

Global site tag (gtag.js) - Google Analytics