HBase

简介: 【8月更文挑战第8天】

Region 的关键属性包括它所属于的表、起始行(第一个 Region 没有起始行)和结束行(最后一个 Region 没有结束行)。当表首次写入数据时,它只有一个 Region。随着数据量的增加,这个 Region 会逐渐增大,直到达到配置的阈值(例如:hbase.hregion.max.filesize,默认为10GB)时,该 Region 会被拆分成两个新的 Region

在创建表时,可以通过预分区来优化 Region 的分布,避免写入热点问题,提高数据插入效率。预分区通过在建表时指定初始 Region 的数量和分布,可以减少后期 Region 拆分的频率和负载均衡的负担 。

创建一个预分区的 HBase 表:

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;

public class HBaseAdminExample {
   
    public static void main(String[] args) throws Exception {
   
        Configuration conf = HBaseConfiguration.create();
        HBaseAdmin admin = new HBaseAdmin(conf);

        // 检查表是否存在,如果存在则删除
        HTable table = new HTable(conf, "预分区表");
        if (admin.tableExists(table.getName())) {
   
            admin.disableTable(table.getName());
            admin.deleteTable(table.getName());
        }

        // 创建表描述符和列族描述符
        HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf("预分区表"));
        HColumnDescriptor columnDesc = new HColumnDescriptor("列族");
        tableDesc.addFamily(columnDesc);

        // 设置预分区的split key
        byte[][] splitKeys = new byte[][]{
   Bytes.toBytes("split_key1"), Bytes.toBytes("split_key2")};
        admin.createTable(tableDesc, splitKeys);

        // 关闭连接
        admin.close();
    }
}
相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7月前
|
Java 分布式数据库 Hbase
hbase系列
hbase系列
45 0
|
5月前
|
分布式计算 Hadoop 大数据
Hbase一:Hbase介绍及特点
Hbase一:Hbase介绍及特点
64 0
|
7月前
|
存储 Java 分布式数据库
什么是HBase?它的特点是什么?
什么是HBase?它的特点是什么?
574 0
|
7月前
|
存储 NoSQL 分布式数据库
|
NoSQL 大数据 分布式数据库
【HBase】(1)-HBase的安装
【HBase】(1)-HBase的安装
158 0
【HBase】(1)-HBase的安装
|
存储 分布式计算 安全
第8章 HBase应用
第8章 HBase应用
429 0
|
SQL 缓存 NoSQL
HBase问题答疑汇总(2021)
HBase问题答疑汇总(2021)
|
存储 负载均衡 监控
从一无所知到5分钟快速了解HBase
从一无所知到5分钟快速了解HBase
265 0
从一无所知到5分钟快速了解HBase
|
存储 NoSQL Java
HBase特点
HBase特点
169 0
|
Web App开发 存储 大数据
Hbase问题汇总与解答
今天早上分享了下HBase,分享的时候同事提出了一些问题,可能大部分有有这样的困惑,汇总下来: HBase问题汇总与解答 两个独立的服务器,一台用HDFS,一台不用HDFS可以吗?HDFS和Hbase必须要装在同一台服务器上吗? 答: As HBase runs on HDFS (and eac...