HBase基础
HBase快速入门
HBase 快速入门之功能概述- HBase是什么: HBase是一个基于Hadoop的分布式的可扩展的大数据存储的基于内存列存储NoSQL数据库- 官网: HBase官网- 应用场景: HBase 数据库,提供分布式的实时realtime、随机的Random、大数据持久性存储(读写数据),主要应用于海量数据存储和实时查询业务场景中。
HBase 快速入门之数据模型(与MySQL对比)- 数据库数据存储对象 对比- MySQL 数据库数据存储对象:database和table- HBase 数据库数据存储对象:namespace和table- HBase中的表是分布式的,表的数据划分不同部分,分布式存储在不同的机器上;- 所有的表在访问时,都必须加上namespace名称,除非表在default默认namespace下,可以不加namespace名称来进行访问;- 有一个namespace叫做
school
,有一张表叫做class
,访问:school:class- HBase中自带一个namespace叫做default
,有一张表叫t1
,访问:default:t1 或者 t1- 在HBase数据库中,默认存在2个namespace:default
(类似Hive中defualt数据库,默认创建表都是在此namespace中,)和hbase
(属于HBase数据库元数据表所属命名空间)- HBase中表Table结构:列簇ColumnFamily和列Column/Qualifier组成,每一列数据类型为字节数组byte[]
。- 行键/主键RowKey:- 类似于MySQL主键(Primary Key)概念,唯一标记一行、作为主键索引- 每张HBase表都有行健,行健这一列是HBase表创建以后自带的- 列族ColumnFamily:- 对除了Rowkey以外的** 列进行分组,将列划分不同的组中 - 任何一张HBase的表,都 至少要有一个列族 ,除了Rowkey以外的任何一列,都必须属于某个列族,Rowkey不属于任何一个列族- 分组:将拥有相似属性的列放入同一个列族【要读一起读,要写一起写】 - 设计原因:划分列族,读取数据时可以加快读取的性能**- 如果没有列族,没有划分班级教室:找一个人,告诉你这个人就在这栋楼- 如果有了列族,划分了教室:找一个人,告诉你这个人在这栋楼某个房间- 列Qualifier/Column:- 除了rowkey以外的任何一列都必须属于某个列族, 引用列的时候,必须加上列族的名称- 如果有一个列族:info
,如果info列族中有两列:name,age
,访问:info:name,info:age
概念MySQLHbase数据库DataBaseNameSpace数据表TableTable【分布式的】数据分区-Region,表中数据一部分数据行数据【主键+其他列】Rowkey+数据【其他列】列族-ColumnFamily数据列普通列与对应的值列【timestamp】与对应的值【支持多版本】HBase 快速入门之集群架构 - HBase 数据库中表Table数据,划分为很多部分进行单独存储管理,每部分数据称为:Region分区/区域。
- HBase 数据库,与HDFS一样,都是分布式主从架构,主节点:HMaster,从节点HRegionServer
- HMaster:主节点,管理节点- 负责元数据的管理,比如namespace、table、列簇,region等- 负责所有从节点的管理- HRegionServer:从节点,存储节点- 负责管理每张表的分区数据:Region- 对外提供Region的读写请求- Zookeeper:分布式协作框架- HBase 分布式集群,依赖Zookeeper框架进行协作服务,存储元数据,实现高可用HA- HDFS:分布式文件系统- HBase表中数据存储到HDFS文件中,文件称为HFile文件
版权归原作者 豌豆*(瓜 所有, 如有侵权,请联系我们删除。