首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HBase结构

HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大,下面就了解一下数据是如何存放在HBase中的 关系型数据库的结构 为了更好的理解HBase的思路,先回顾一下关系数据库中表的处理方式...HBase的处理方式 HBase结构 建时要指定的是:名、列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个,名称是user_info...: row key base_info ext_info row1 name:a, tel:123 row2 name:b addr:bj HBase中还有一个重要概念:版本,每个字段的值都有版本信息...插入数据的过程可以看出 HBase 存储数据的特点了 和关系数据库一样,也是使用行和列的结构 建时,定义的是名和列族(字段的集合),而不是具体字段 列族中可以包含任意个字段,字段名不需要预定义,每一行中同一列族中的字段也可以不一致...多维结构,关系数据库的是二维的,通过指行、列定位一个数据,HBase中需要通过 行健、列族名、字段名、版本号才能定位到具体数据 插入数据时,一次插入一个字段的数据,不是像关系数据库那样一次插入多个字段

1.5K130
您找到你想要的搜索结果了吗?
是的
没有找到

hbase数据备份策略

(离线备份) 直接备份HDFS数据,备份前需要disable,在备份完成之前 服务不可用对在线服务类业务不友好 (二)CopyTable(热备) 执行命令前,需要创建,支持时间区间、row区间,改变名称...四,Replication(实时) 通过Hbase的replication机制实现Hbase集群的主从模式实时同步 五,Snapshot(备份实时,恢复需要disable) 个人觉得这里备份里面最经济划算的一个...,可以每天在固定时间点对hbase数据进行快照备份,然后如果出现问题了,可以直接恢复到某个时间点上的数据,适合修复指标计算错误的场景,然后从某个时间点上重新修复。...snapshot create -n test_snapshot -t test (4)查看快照 list_snapshots (5)导出到HDFS hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot...时间短,体积小,恢复快,最终还可以恢复数据到一张新中,不影响原来的

2.1K40

再谈|Rowkey设计_HBase设计

HBase的rowkey设计可以说是使用HBase最为重要的事情,直接影响到HBase的性能,常见的RowKey的设计问题及对应访问为: Hotspotting 的行由行键按字典顺序排序,这样的设计优化了扫描...假设行键的列表如下,按照每个字母对应一个region来分割。前缀‘a’是一个region,‘b’就是另一个region。在这张中,所有以‘f’开头的行都属于同一个region。...如果需要导入时间顺序的文件(如log)到HBase中,可以学习OpenTSDB的做法。它有一个页面来描述它的HBase模式。...因此,尽管有着连续的数据输入流,Put操作依旧能被分散在中的各个region中 简化行和列 在HBase中,值是作为一个单元(Cell)保存在系统的中的,要定位一个单元,需要行,列名和时间戳。...内[key]的最近的值可以用[key]进行Scan,找到并获取第一个记录。由于HBase行键是排序的,该键排在任何比它老的行键的前面,所以是第一个。

1.2K21

HBase学习—高与宽的选择

utm_content=m_31236 hbase中的宽是指很多列较少行,即列多行少的,一行中的数据量较大,行数少;高是指很多行较少列,即行多列少,一行中的数据量较少,行数大。...据此,在HBase中使用宽、高的优劣总结如下: 查询性能:高更好,因为查询条件都在row key中, 是全局分布式索引的一部分。高一行中的数据较少。...分片能力:高分片粒度更细,各个分片的大小更均衡。因为高一行的数据较少,宽一行的数据较多。HBase按行来分片。 元数据开销:高元数据开销更大。...过大的元数据开销,可能引起HBase集群的不稳定、master更大的负担(这方面后续再好好总结)。 事务能力:宽事务性更好。...而且解压缩可以通过协处理器(coproesssor)在HBase服务器上做,而不是在业务应用的服务器上做,以充分应用HBase集群的CPU能力。

2.3K50

HBase运维:如何逆向修复HBase元数据

HBase中的元数据中记录了Region的路由信息,如果元数据被损坏,将会影响正常的HBase读写业务,而元数据被损坏的问题时有发生,这篇文章介绍了如何进行元数据逆向修复的原理与操作。...本文整体思路如下: HBase目录结构 HBase数据文件 HBase元数据结构 元数据逆向修复原理 如何利用HBase提供的工具进行修复 本文内容基于HBase 1.x版本。.../hbase/data/hbase/acl acl开启HBase权限控制时的权限记录系统。 /hbase/data/hbase/meta 元数据,记录region相关信息。...HBase元数据表格式定义 HBase元数据的完整名称为"hbase:meta",其中,"hbase"为元数据所在的NameSpace名称。...步骤6:hbase hbck -fixMeta 修复meta信息,利用regioninfo信息,重新生成对应meta row填写到meta中,并为其填写默认的分配regionserver。

2.9K10

hbase源码系列(八)从Snapshot恢复

// 检查meta当中是否存在该 if (MetaReader.tableExists(master.getCatalogTracker(), tableName)) { //不能对在线的进行恢复操作...(可能这个被删除了,还是咋地),就克隆出来一张新 HTableDescriptor htd = RestoreSnapshotHelper.cloneTableSchema(snapshotTableDesc...} 恢复之前先判断这个还在不在,有可能都被删除掉了,分开两种情况处理,但是我们也可以看到它只是通过两个handler去处理了,走的是线程池提交handler。...用snapshot当中的定义来覆盖现在的定义 this.masterServices.getTableDescriptors().add(hTableDescriptor);...else { //是hfile的情况 HFileLink.create(conf, fs, familyDir, regionInfo, hfileName); } } 在hbase

1.2K60

HBase客户端API-操作

上一篇博客说了使用 HBase 的客户端 API 来操作管理 HBase 中的,今天我们看看怎样通过 API 来操作中的数据。...介绍 在 HBase 中对数据中的数据的操做我们一般是通过 Table, Put, Get, Delete,Scan,Result等几个类来实现。...Table 是对象,对应数据库中的一张,我们可以在上执行添加,修改,删除和查询操作。 Put 主要是用了对数据中的记录执行写入/更新操作。 Get 主要是用了对数据中的记录执行查询操作。...数据填充完后,在上执行put操作。 最后,不要忘了关闭。...; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes

1.9K70

HBase结构你设计得不对!

正如我在前面章节强调的,HBase数据模型跟关系型数据库系统有非常大的差异。因此,设计Hbase的数据的方法和思路跟关系型数据库不一样。...设计Hbase数据最重要的是定义rowkey结构。为了有效定义rowkey结构,有必要预先定义数据访问模式(读取和写入)。为了定义模式(schema),HBase的一些特性必须考虑。...让我们尝试在HBase中对Twitter的用户关系进行建模(一些用户关注了另一些用户)。...我首先介绍了数据模型(这部分没有翻译,可以参看HBase官方文档),然后讨论了设计HBase时要考虑的一些因素。在HBase设计中还有更多可供探索和学习的东西,这些东西可以建立在这些基础之上。...本文的主要内容是: row key是HBase设计中最重要的一个方面,它决定了应用程序与HBase的交互方式,还会影响您从HBase中提取数据的性能。

1.4K10

Hbase篇--HBase中一对多和多对多的设计

一.前述 今天分享一篇关于HBase的一对多和多对多的案例的分析。...PS:说明,两张User和Role, User中定义两个列族,第一个列族是名字,第二个列族中  多个列定义为具体的角色,列的内容定义为具体的值,即优先级(这里利用了列也能存信息,所以把角色Id定义为具体的列...PS:解释 一个 rowkey中0代顶级部门  1代非顶级部门  因为顶级部门不是经常查  列族的列是具体的子部门列表。值是具体的名称。...发布微博 查看某个用户所有的微博  排序:时间降序排序 查看首页  时间降序排序 001小明       关注  韩梅梅、李雷 002李雷       关注  韩梅梅 003韩梅梅 关注粉丝...rowkey           cf wid            cf:content=微博内容; wid设计: pid_(Max-timestamp) 收取微博 rowkey    cf

1.9K30

flink维关联系列之Hbase关联:LRU策略

关联系列目录: 一、维服务与Flink异步IO 二、Mysql维关联:全量加载 三、Hbase关联:LRU策略 四、Redis维关联:实时查询 五、kafka维关联:广播方式 六、自定义异步查询...在Flink中做维关联时,如果维的数据比较大,无法一次性全部加载到内存中,而在业务上也允许一定数据的延时,那么就可以使用LRU策略加载维数据。...但是如果一条维数据一直都被缓存命中,这条数据永远都不会被淘汰,这时维的数据已经发生改变,那么将会在很长时间或者永远都无法更新这条改变,所以需要设置缓存超时时间TTL,当缓存时间超过ttl,会强制性使其失效重新从外部加载进来...接下来介绍两种比较常见的LRU使用: LinkedHashMap LinkedHashMap是双向链表+hash的结构,普通的hash访问是没有顺序的,通过加上元素之间的指向关系保证元素之间的顺序,...LRU方式读取Hbase 实现思路: 使用Flink 异步IO RichAsyncFunction去异步读取hbase的数据,那么需要hbase 客户端支持异步读取,默认hbase客户端是同步,可使用hbase

1K21
领券