
HBase
文章平均质量分 88
梦回从前
只要是光一定会灿烂的
展开
-
一个HBase查询问题引发的思考,作为HBase使用者这个问题你知道答案吗?
前言讲解HBase事务的文章很多,这里就不过多赘述了,大家应该都知道是通过MVCC实现的。但是今天这篇文章的背景是一个同事和我讨论一个问题引发的,这个问题使我重新梳理下这块内容并作为记录和大家分享。下面先来看看这个问题:HBase的查询流程是:先查询MemStore,查不到则查询BlockCache,还没有则查询HFile,再将查询到的数据放入BlockCache。请问是不是存在这么一种情况,假如有一条数据id=1,name='张三',当被查询时,数据被放入blockCache中,后来数据原创 2022-04-22 16:20:12 · 3858 阅读 · 0 评论 -
HBase生产环境从入门到熟练使用,这一篇文章就够了
前言 HBase从发布开源到现在已经走过了十多个年头,一路风雨走来,版本与功能不断完善,版本也从0.9X,1.X直到现在的2.X。作为大数据生态圈的资深老兵,也积累了一众信徒,社区也相当活跃和完善,在某些场景下也是NOSQL数据库的首选。作为2013年入行大数据的老玩家,笔者从HBase0.92版本就开始接触和使用HBase。一路走来,见证过HBase的高光,也见过HBase的落寞,在百花齐放的大数据时代,在CAP原则的限制下,终究不会有大一统的数据库,只能在适合的场景使用合适的数据库,达...原创 2021-05-17 20:31:38 · 555 阅读 · 4 评论 -
HBase读写性能优化
HBase 读取性能优化HBase服务端优化读请求是否均衡如果数据吞吐量较大,且一次查询返回的数据量较大,则Rowkey 必须进行散列化处理,同时建表必须进行预分区处理。对于以get为主的查询场景,则将表进行hash预分区,均匀分布;如果以scan为主,则需要兼顾业务场景设计rowkey,在满足查询需求的前提下尽量对数据打散并进行负载均衡。BlockCache 设置是否合理一个通用的规则就是:如果 JVM 内存配置量小于 20G,BlockCache 策略选择 LRUBlockCache原创 2021-05-17 20:27:46 · 796 阅读 · 0 评论 -
HBase核心参数优化
背景 HBase作为一个使用方便的数据库,除了必要参数外,基本可以做到安装即可使用。但是随着数据量和并发量的增加,默认配置可能没办法很好地支撑数据和业务的处理,轻则效率低下,重则系统不可用,所以在这种情况下,需要进行性能优化,下面就从几个方面来说说HBase的几个核心参数的优化正文RegionRegion是HBase中的表是根据row key的值水平分割而成的。一个region包含表中所有row key位于region的起始键值和结束键值之间的行,所以Region是HBase中数据存...原创 2021-05-17 14:11:59 · 762 阅读 · 0 评论 -
一文详解HBase表设计原则和实现
前言 HBase作为一款历史悠久且具有代表性的NOSQL的数据库,其优点与缺点同样的明显,所以在确认了使用场景适合后下一步就是如何用好HBase了,不夸张的说,HBase使用的好与坏可能会造成天差地别,所以当你抱怨HBase如何的差劲不如XXX的时候,一定要先确认下自己是不是真的很好的使用了HBase,让其充分发挥出自己的亮点正文 想要用好HBase,首先要确认自己的业务场景是不是适合使用HBase,这个我在另外一篇博文中已经有所描述HBase的使用场景,大家可以参考...原创 2021-04-09 19:06:07 · 2072 阅读 · 0 评论 -
一文详解HBase资源隔离相关的解决方案
背景 易扩展性,准确来说是易横向扩展性,一直是HBase引以为豪的优点之一,所以理论上HBase的集群规模可以做到很大,多个产品和业务的数据可以存在一个HBase中统一管理,节省运维资源和成本。 但是集群规模大了,数据量多了,处理负载变高了,加上各个产品和业务之间优先级不同,负载不同,对不同资源的敏感性也不同,使得简单粗暴的共用一个集群的效果并不是很好,面对这种业务场景早期的HBase版本并没有相关的解决方案,所以更多的就是各自为战,各自用各自的集群,这样不仅使得HBas...原创 2021-04-07 16:02:46 · 885 阅读 · 0 评论 -
一文入门HBase架构
前言 谈到HBase的设计,可以讲的东西太多了,本文从HBase的架构设计以及存储设计来简单说明下HBase到底是怎么玩的,帮大家入门,为后续深入的学习以及研究起到提纲挈领的作用。HBase架构设计 借用这张经典的架构图,虚线以上代表的HBase相关的实现,虚线以下则代表着HBase依赖的底层HDFS相关的实现。 HBase的角色有两种,即HMaster以及HRegionServer:HMaster HMaster是Master Serve...原创 2021-03-22 20:39:37 · 315 阅读 · 1 评论 -
HBase使用场景概述
HBase特点 HBase作为一款NoSQL数据库,由于CAP原则的存在以及本身实现的特点,并不能解决所有问题。下面先说一下HBase的特点:高并发高吞吐量HBase底层使用LSM tree来作为数据处理模型,所以数据直接写入内存,写吞吐量得到保证。而读数据优先从内存中读取,这样可以覆盖大量的热数据,能满足大部分的热数据查询场景;冷数据在磁盘上是按照字典序排列,如果数据存储以及数据查询设计的合理,则大部分场景下的查询会转化为单rowkey的get以及磁盘上顺序数据的读取,吞吐量同样...原创 2021-03-22 19:14:28 · 1052 阅读 · 1 评论 -
转载-HBase线上生产调优建议(读写分离、RSgroup、流量控制)
笔者今天给大家讲一下 HBase 生产环境中的实践,包括资源隔离、参数配置、性能优化等方面,部分内容参考《HBase原理与实践》(非常建议大家好好读一读,一定会大有收获),以及笔者的实战经验。HBase 业务资源隔离1. 读写分离场景RegionServer 默认情况下只提供一个请求队列给所有业务使用,导致部分延迟较高的请求影响其他对延迟敏感的业务。针对这种情况,HBase 提供了读写队列隔离方案。我们知道,HBase 有三种典型的API操作类型,分别为 get、scan 和write,其中转载 2020-12-16 11:20:39 · 629 阅读 · 0 评论 -
HBase数据压缩 Column family Compress & Data Block Encoding
说到HBase数据压缩,在HBase中有两种方式可以达到该目的,一个就是column family的compress,HBase支持none/snappy/lzo/lz4/gz等几种压缩方式来压缩数据,最后降低数据总量的大小;另一个是data block 的encoding,通过对data block中的KeyValue中key的相同部分进行处理来减少存储的占用,目前支持prefix/diff/fast diff/prefix tree等几种方式来实现data block 的encoding,另外,...原创 2020-07-22 10:10:38 · 1424 阅读 · 0 评论 -
HBase session expired regionserver aborted session timeout
环境信息:HBase 1.2.X,Zookeeper,3.4.X问题描述:HBase的regionserver进程挂掉,查看日志,发现如下报错:FATAL [main-EventThread] regionserver.HRegionServer: ABORTING region serverorg.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired问题原创 2020-07-21 09:44:28 · 1146 阅读 · 0 评论 -
hbase table region 按条件自动批量合并
环境信息:HBase 1.2.2,Hadoop 2.7.2使用需求:为什么需要合并Region呢?这个需要从Region的Split来说。当一个Region被不断的写数据,达到Region的Split的阀值时(由属性hbase.hregion.max.filesize来决定,默认是10GB),该Region就会被Split成2个新的Region。随着业务数据量的不断增加,Region不...原创 2019-04-23 17:41:41 · 2385 阅读 · 5 评论 -
hbase1.2 coprocessor使用介绍和问题总结(部署、卸载以及更新)
环境信息:HBase 1.2.2,Hadoop 2.7.2使用需求:由于需要使用es创建hbase的二级索引,所以打算使用coprocessor中的RegionObserver来实现此功能,本文主要也是讲解RegionObserver的加载以及使用注意事项使用总结: RegionObserver的加载分为动态加载和静态加载静态加载(通过配置HBase):在 hbas...原创 2018-12-10 13:27:28 · 1433 阅读 · 0 评论 -
HBase读延迟的12种优化套路
任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题。HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少。总结起来,大家遇到的主要问题无非是Full GC异常导致宕机问题、RIT问题、写吞吐量太低以及读延迟较大。 Full GC问题之前在一些文章里面已经讲过它的来龙去脉,主要的解决方案目前主要有两方面...转载 2018-10-22 09:26:50 · 380 阅读 · 0 评论 -
HBase增加/修改/删除表的压缩方式
环境信息:HBase 1.2.2需求:一个已经存在的表,修改其压缩方式,并对之前的旧数据生效实现:1、进入shell界面--hbase shell2、停用表--disable 'geomesa_hbase(表名)'3、修改压缩方式:由于压缩方式是按照列族指定的,所以修改压缩方式的时候,需要指定列族--alter 'geomesa_hbase(表名)', NAME =&g...原创 2018-09-20 15:27:28 · 2489 阅读 · 0 评论 -
HBase查询报错:java.lang.NoClassDefFoundError:org.apache.hadoop.hbase.util.ByteStringer
环境信息:Hadoop 2.7.2+HBase 1.2.2现象:下午前端的同事使用scan查询HBase数据,代码执行到Table.getScanner(scan)方法时卡住了,无法返回结果直到超时,查看控制台,出现如下报错:java.lang.NoClassDefFoundError:org.apache.hadoop.hbase.util.ByteStringer问题分析:...原创 2018-08-15 16:21:16 · 8809 阅读 · 0 评论 -
HBase节点掉线问题排查
环境信息:Hadoop2.7.2+HBase1.2.2+Zookeeper3.4.1011台服务器,1主10从,基本配置:128G内存,2个CPU12核48线程服务器上运行了HDFS(11台),HBase(11台),Zookeeper(11台,部分复用集群资源),Yarn(11台,上面运行MR以及Spark任务),以及部分业务多线程程序问题描述:HBase启动后频繁报错,然后进...原创 2018-07-27 11:43:35 · 3134 阅读 · 1 评论 -
HBase:Multiple regions have the same startkey,There is an overlap in the region chain.问题详解
环境信息:Hadoop 2.7.2+HBase 1.2.2现象:HBase重启后运行hbase hbck报错:Multiple regions have the same startkey:XXXXThere is an overlap in the region chain.问题分析:1、HBase在重启之后由于某些原因一部分region未分配成功而上线失败,执行...原创 2018-07-27 11:12:37 · 10441 阅读 · 2 评论