博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase数据结构模型
阅读量:2111 次
发布时间:2019-04-29

本文共 11135 字,大约阅读时间需要 37 分钟。

文章目录

1,数据结构

  • hbase 表= multi-dimensional map (多维度的Map: kv对)
  • row: 一条数据记录
    row的结构如下:有序的存储(按rowkey的字典序, a->z )
    ( rowkey1: { 列组: {列名: “属性值”} } )

参考:

hbase(main):014:0> scan 'test'ROW          COLUMN+CELL                                                                                                                      a1          column=f:name, timestamp=1586779007598, value=name1                                                                              r1          column=f:name, timestamp=1586422233658, value=test                                                                              2 row(s) in 0.0150 seconds## 数据模型  "rowkey1" : {
"cf1" : {
"name" : {
1123123123112 : "lisi", 1231243123312 : "lisi2" }, "job" : {
1512343252351 : "java-enginer" } }, "cf2" : {
"city" : {
123461231 : "BeiJin" } } }

2,表数据组织结构: meta表

a, hbase元数据meta表的作用

hbase系统表(meta, namespace) --> namespace表:存放所有的命名空间, meta: 表的region分布信息

在这里插入图片描述
参考:
在这里插入图片描述

##1,命名空间( database)hbase(main):034:0> list_namespaceNAMESPACE                                                                                                                                                                    default                                                                                                                                                                      hbase                                                                                                                                                                        2 row(s) in 0.0130 seconds##2,某个命名空间下的表( database.table )hbase(main):037:0> list_namespace_tables 'hbase'TABLE                                                                                                                                                                        meta                                                                                                                                                                         namespace                                                                                                                                                                    2 row(s) in 0.0340 secondshbase(main):038:0>  scan 'hbase:namespace'ROW                                          COLUMN+CELL                                                                                                                      default                                     column=info:d, timestamp=1586414716734, value=\x0A\x07default                                                                    hbase                                       column=info:d, timestamp=1586414716750, value=\x0A\x05hbase                                                         2 row(s) in 0.0230 secondshbase(main):036:0>  scan 'hbase:meta'ROW                                          COLUMN+CELL                                                                                                                      hbase:namespace,,1586414715365.6faa8977c7b0 column=info:regioninfo, timestamp=1586744606619, value={ENCODED => 6faa8977c7b0bc9c7021864a0e131544, NAME => 'hbase:namespace,,1 bc9c7021864a0e131544.                       586414715365.6faa8977c7b0bc9c7021864a0e131544.', STARTKEY => '', ENDKEY => ''}                                                   hbase:namespace,,1586414715365.6faa8977c7b0 column=info:seqnumDuringOpen, timestamp=1586744606619, value=\x00\x00\x00\x00\x00\x00\x00\x0D                                    bc9c7021864a0e131544.                                                                                                                                                        hbase:namespace,,1586414715365.6faa8977c7b0 column=info:server, timestamp=1586744606619, value=cdh-node1:60020                                                               bc9c7021864a0e131544.                                                                                                                                                        hbase:namespace,,1586414715365.6faa8977c7b0 column=info:serverstartcode, timestamp=1586744606619, value=1586744536803                                                        bc9c7021864a0e131544.                                                                                                                                                         test,,1581074147974.6d9cc122b356452eb1a7f5f column=info:regioninfo, timestamp=1586776597280, value={ENCODED => 6d9cc1fc906d, NAME => 'test,,158107414797 834fc906d.                                  4.6d9cc1fc906d.', STARTKEY => '', ENDKEY => ''}                                                              test,,1581074147974.6d9cc122b356452eb1a7f5f column=info:seqnumDuringOpen, timestamp=1586776597280, value=\x00\x00\x00\x00\x00\x00\x00+                                       834fc906d.                                                                                                                                                                   test,,1581074147974.6d9cc122b356452eb1a7f5f column=info:server, timestamp=1586776597280, value=cdh-node1:60020                                                               834fc906d.                                                                                                                                                                   test,,1581074147974.6d9cc122b356452eb1a7f5f column=info:serverstartcode, timestamp=1586776597280, value=1586744536803                                                        834fc906d.                                                                                                                                                                  2 row(s) in 0.0230 seconds

b, 示例:hbase分区表如何存储在meta表中

  • 创建测试分区表
##创建表, 预切分region(设置region数量2个:  [1,10),   [10, -无穷大] )hbase(main):050:0> create 't1', 'f1', SPLITS => ['10']0 row(s) in 1.2570 seconds=> Hbase::Table - t1
  • 在master ui上查看表信息
    在这里插入图片描述
  • 命令行查看:在hbase:meta表里面查看
hbase(main):009:0> scan 'hbase:meta',{ROWPREFIXFILTER => 't1,'}ROW                                      COLUMN+CELL t1,,1605080952171.4944c4c339be5433bb46b column=info:regioninfo, timestamp=1605080953044, value={ENCODED => 4944c4c339be5433bb46bd7260fd5ff1, NAME => 't1,,16 d7260fd5ff1.                            05080952171.4944c4c339be5433bb46bd7260fd5ff1.', STARTKEY => '', ENDKEY => '10'} t1,,1605080952171.4944c4c339be5433bb46b column=info:seqnumDuringOpen, timestamp=1605080953044, value=\x00\x00\x00\x00\x00\x00\x00\x02 d7260fd5ff1. t1,,1605080952171.4944c4c339be5433bb46b column=info:server, timestamp=1605080953044, value=hadoop1:60020 d7260fd5ff1. t1,,1605080952171.4944c4c339be5433bb46b column=info:serverstartcode, timestamp=1605080953044, value=1605056703882 d7260fd5ff1. t1,10,1605080952171.5313a2af3e1b6d2da49 column=info:regioninfo, timestamp=1605080953061, value={ENCODED => 5313a2af3e1b6d2da49b7531995f2462, NAME => 't1,10, b7531995f2462.                          1605080952171.5313a2af3e1b6d2da49b7531995f2462.', STARTKEY => '10', ENDKEY => ''} t1,10,1605080952171.5313a2af3e1b6d2da49 column=info:seqnumDuringOpen, timestamp=1605080953061, value=\x00\x00\x00\x00\x00\x00\x00\x02 b7531995f2462. t1,10,1605080952171.5313a2af3e1b6d2da49 column=info:server, timestamp=1605080953061, value=hadoop1:60020 b7531995f2462. t1,10,1605080952171.5313a2af3e1b6d2da49 column=info:serverstartcode, timestamp=1605080953061, value=1605056703882 b7531995f2462.2 row(s) in 0.0150 seconds

3,hbase表数据存储:目录结构

## 0,hbase表的存储格式[root@cdh-node1 ~]# hdfs dfs -ls /hbase/data/default/testFound 3 itemsdrwxr-xr-x   - hbase hbase   0 2020-04-13 11:16 /hbase/data/default/test/.tabledesc #表的描述信息: desc tab1drwxr-xr-x   - hbase hbase   0 2020-04-13 11:16 /hbase/data/default/test/.tmp #正常是空目录,除非compact,splitdrwxr-xr-x   - hbase hbase   0 2020-04-13 11:16 /hbase/data/default/test/6d9cc1fc906d #表的regionfile/hstore/storefile[root@cdh-node1 ~]# hdfs dfs -ls /hbase/data/default/test/6d9cc1fc906dFound 4 items-rw-r--r--   1 hbase hbase   39 2020-04-09 08:51 /hbase/data/default/test/6d9cc1fc906d/.regioninfodrwxr-xr-x   - hbase hbase    0 2020-04-13 11:16 /hbase/data/default/test/6d9cc1fc906d/.tmp #正常是空目录drwxr-xr-x   - hbase hbase    0 2020-04-13 11:16 /hbase/data/default/test/6d9cc1fc906d/fdrwxr-xr-x   - hbase hbase    0 2020-04-13 11:16 /hbase/data/default/test/6d9cc1fc906d/recovered.edits[root@cdh-node1 ~]# hdfs dfs -ls /hbase/data/default/test/6d9cc1fc906d/.regioninfo-rw-r--r--   1 hbase hbase         39 2020-04-09 08:51 /hbase/data/default/test/6d9cc1fc906d/.regioninfo[root@cdh-node1 ~]# hdfs dfs -cat /hbase/data/default/test/6d9cc1fc906d/.regioninfoPBUF�����.defaulttest"(08[root@cdh-node1 ~]# hdfs dfs -ls /hbase/data/default/test/6d9cc1fc906d/fFound 1 items-rw-r--r--   1 hbase hbase   994 2020-04-13 11:16 /hbase/data/default/test/6d9cc1fc906d/f/bd8f4d9313db49529bac5a6086871063## 1,查看表默认属性## hbase(main):005:0> desc 'ttl1'## Table ttl1 is ENABLED                                                                                                                                                        ## ttl1                                                                                                                                                                         ## COLUMN FAMILIES DESCRIPTION                                                                                                                                                  ## {NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'N## ONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                                             ## 1 row(s) in 0.0220 seconds[root@cdh-node1 ~]# hdfs dfs -cat /hbase/data/default/test/.tabledesc/.tableinfo.0000000001PBUFdefaulttestIS_METAfalse�fBLOOMFILTERROWVERSIONS1  IN_MEMORYfalseKEEP_DELETED_CELLSFALSEDATA_BLOCK_ENCODINGNONETTL2147483647COMPRESSIONNONEMIN_VERSIONS0BLOCKCACHEtrue  BLOCKSIZE65536REPLICATION_SCOPE0## 2,修改表属性:压缩+ 块编码## hbase(main):006:0> alter 'test',{NAME=>'f',COMPRESSION=>"LZ4",DATA_BLOCK_ENCODING=>"FAST_DIFF"}## Updating all regions with the new schema...## 1/1 regions updated.## Done.## 0 row(s) in 2.0640 seconds## ## hbase(main):007:0> compact## compact       compact_mob   compact_rs## hbase(main):007:0> compact 'test'## 0 row(s) in 0.0690 seconds## ## hbase(main):008:0> major_compact## major_compact       major_compact_mob## hbase(main):008:0> major_compact 'test'## 0 row(s) in 0.0510 seconds[root@cdh-node1 ~]# hdfs dfs -ls /hbase/data/default/test/.tabledescFound 1 items-rw-r--r--   1 hbase hbase   285 2020-04-13 11:16 /hbase/data/default/test/.tabledesc/.tableinfo.0000000002[root@cdh-node1 ~]# hdfs dfs -cat /hbase/data/default/test/.tabledesc/.tableinfo.0000000002PBUFdefaulttestIS_METAfalse�fBLOOMFILTERROWVERSIONS1  IN_MEMORYfalseKEEP_DELETED_CELLSFALSE DATA_BLOCK_ENCODING FAST_DIFFTTL2147483647COMPRESSIONLZ4MIN_VERSIONS0BLOCKCACHEtrue  BLOCKSIZE65536REPLICATION_SCOPE0

转载地址:http://lcdef.baihongyu.com/

你可能感兴趣的文章
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>
Go语言学习Part2:流程控制语句:for、if、else、switch 和 defer
查看>>
Go语言学习Part3:struct、slice和映射
查看>>
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
Leetcode C++ 剑指 Offer 09. 用两个栈实现队列
查看>>
Leetcode C++《每日一题》20200707 112. 路径总和
查看>>
云原生 第十一章 应用健康
查看>>
Leetcode C++ 《第202场周赛》
查看>>
云原生 第十二章 可观测性:监控与日志
查看>>