
HBase
铁木匠
你可以不去做一个CTO,但是你依然应该拥有成为CTO的能力!
展开
-
HBase基本知识
HBase最开始是受Google的BigTable启发而开发的分布式、多版本、面向列的开源NoSQL数据库。其主要特点是支持上亿行、百万列、支持强一致性、并且具有高扩展、高可用的特点。既然HBase是一种分布式的数据库,那么和传统的RMDB有什么区别呢?先来看看HBase表组成元素:RowKey:表中每条记录的主键 Column Family:列族,将表进行横向切割,后面简称CF ...原创 2019-08-20 16:52:35 · 588 阅读 · 0 评论 -
HBase表里面的数据存储
从上图可以明显看出,这张表有两个Column Family,分别为personal和office。而personal又有三列name、city以及phone;office有两列tel和address。由于存储在HBase里面的表一般有上亿行,所以HBase表会对整个数据按照RowKey进行字典排序,然后再对这张表进行横向切割。切割出来数据是存储在Region里边,而不同的Column Fami...原创 2019-08-20 17:41:11 · 1124 阅读 · 0 评论 -
HBase数据读写
HBase写数据架构图:HBase写过程如下:先将数据写到WAL中; WAL存放在HDFS上; 每次put、Delete操作的数据均追加到WAL末端; 持久化到WAL之后,再写到MemStore中; 两者写完返回ACK客户端。MemStore其实是一种内存结构,一个Column Family对应一个MemStore,MemStore里边的数据也是对RowKey进行字典排序的,...原创 2019-08-21 13:27:41 · 206 阅读 · 0 评论 -
HBase RowKey的设计要点
HBase中的RowKey主要有以下的作用:读写数据时通过Row Key找到对应的Region MemStore中的数据按RowKey字典顺序排序 HFile中的数据按RowKey字典顺序排序底层的HFile最终是按照RowKey进行切分的,所以我们的设计原则是结合业务的特点,并考虑高频查询,尽可能的将数据打散到整个集群中。RowKey的设计-SaltingSalting的原理是...原创 2019-08-21 14:16:49 · 267 阅读 · 0 评论