HBASE-使用问题-split region】的更多相关文章

一. Hbase的region 我们先简单介绍下Hbase的架构和Hbase的region: 从物理集群的角度看,Hbase集群中,由一个Hmaster管理多个HRegionServer,其中每个HRegionServer都对应一台物理机器,一台HRegionServer服务器上又可以有多个Hregion(以下简称region).要读取一个数据的时候,首先要先找到存放这个数据的region.而Spark在读取Hbase的时候,读取的Rdd会根据Hbase的region数量划分stage.所以当r…
1.介绍HBase集群上region数目由于业务驱动而越来越多,由于服务器本身,网络以及hbase内部的一些不确定性bug等因素使得这些region可能面临着不可用或响应延时情况.通过对region的监控,也可以反映出hdfs集群的状况2.工具org.apache.hadoop.hbase.tool.Canary 监控Region的可用和读写状况Usage: bin/hbase org.apache.hadoop.hbase.tool.Canary [opts] [table 1 [table…
问题描述: HBASE表的管理以REGION分区为核心,通常面临如下几个问题: 1) 数据如何存储到指定的region分区,即rowkey设计,region splitkey设计 2)设计的splitkey是否可以解决热点问题 3)设计的splitkey是否可以解决均匀分布,避免自动分裂的问题 4)region的创建和删除问题 对于1)问题  比如:对于按照时间存储的数据,region splitkey 可以是2019,2020 :  201901,201902:20190101 等等类似方式,…
前言 RegionServer维护Master分配给它的region,处理对这些region的IO请求,负责切分在运行过程中变得过大的region, 由于集群性能( 分配的内存和磁盘是有限的 )有限的,那么HBase单个RegionServer的region数目肯定是有上限的. Region数目上限 RegionServer的region数目取决于memstore的内存使用,每个region拥有一组memstore(memstore的数量有hstore决定,hstore的数据由创建表时的指定的列…
转载:http://ju.outofmemory.cn/entry/50064 随着大数据表格应用的驱动,我们的HBase集群越来越大,然而由于机器.网络以及HBase内部的一些不确定性的bug,使得系统面临着一些不确定性的故障. 因此,HBase上有很多的Region组成,需要控制每个表格的Region的状态. 分析: 1)实时掌控Region的状态.应用的每次访问要直接与HBase某个Region关联,需要探测Table上Region是否处于可用状态. 2)Region的读写与底层的HDFS…
hbase region split操作的一些细节,具体split步骤很多文档都有说明,本文主要关注regionserver如何选取split point 首先推荐web ui查看hbase region分布的一个开源工具hannibal,建议用daemontool管理hannibal意外退出,自动重启,之前博文写了博文介绍如何使用daemontool管理 假设有一张hbase的table如下表所示,有一个region的大小比较大,可以对这个region进行手动split操作 HBase的物理存…
HBase中有两张特殊的Table,-ROOT-和.META. .META.:记录了用户表的Region信息,它可以有多高region(这的意思是说.META.表可以分 裂成多个region,和用户表一样) -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region(也就是说它不可分割) Zookeeper中记录了-Root-表的location region大小: 更大的Region可以使你集群上的Region的总数量较少. 一般来言,更少的Region可以使你的集…
前言 文章不含源码,只是一些官方资料的整理和个人理解 架构总览 这张图在大街小巷里都能看到,感觉是hbase架构中最详细最清晰的一张,稍微再补充几点. 1) Hlog是低版本hbase术语,现在称为WALs. 2) 1个region包含了多个store,1个store包含了1个colum family,这样就比较好理解 3) 1个store包含了多个storefile,1个sotrefile就是1个hfile文件 这在HDFS路径也能体现,大概长这样 table/region/column fa…
1. 为什么split 最初一个Table 只有一个region(因此只能存放在一个region server上).随着数据的不断写入,HRegion越来越大,当到达一定程度后分裂为两个,通过负载均衡可以将不同的region分配到不同的region server上,发挥分布式系统的优点. 注意:compact的对象是针对某几个storefile,但是split的对象是整个region的所有的storefile.(我的理解,待确认) 2. split的三种方式 pre-spliting (预分裂)…
在生产环境中很有可能有那么几个Region比较大,但是都运行在同一个Regionserver中. 这个时候就需要手动将region移动到负载低的Regionserver中. 步骤: 1.找到要移动的region,记录红框的id值,这个是唯一的region ID 2.查看RegionServer列表,并记录ip.端口.startcode #明显读请求不均衡 3.我们需要将部分region移动到dn3这台RegionServer上. 例如: mine:t_match_odds,""&quo…