hadoop的数据库,根据谷歌的bigtable论文实现的分布式的可扩展的大数据存储技术随机访问 实时读写海量数据存储数‘十亿行 百万例’的数据高性能、高可靠、面向列、可伸缩的分布式存储系统Hbase的底层也是基于hdfs的利用zookeeper作为一个协调工作的 Hbase到底是什么东西?
分布式开源数据库,基于hadoop文件系统模仿提供了Goole文件系统的BigTable数据库的所有功能处理非常庞大的表
数10亿,百万列利用mr计算数据,利用zookeeper协调资源HBas是非关系型数据库(NoSQL) 行存储和列存储
行存储:mysql oracle底层基于行存储数据的
查询数据需要全表扫描,效率较低对数据压缩支持不太好列存储:hbase底层基于列存储数据的
查询数据不需做全表扫描支持较好的数据压缩 Hbase的特点
可以分布式存储海量的数据具有容错能力强,数据高可靠的特点Hbase是一个列式NoSQL数据库 数据存储的结构是按照列进行存储 Hbase的体系结构(模型)
1.逻辑结构(模型)
表
划分数据集合的概念,和传统的db中的表的概念是一样 行键
对应关系数据库中的主键,作用就是**唯一标示一行记录**获取hbase中的一个记录(数据),要通过**行键**来获取行键是**字节数组, 任何字符串**都可以作为行键 表中的行根据行键(row key)进行**排序** ,数据按照Row key的**字节序**(byte order)排序存储 列族
简单的认为是一系列**“列”的集合**列限定符
或者叫**列** 每个列簇都可以有多个列时间搓
在单元格中可以存放**多个版本**的数据 单元格
主要用来**存储数据**单元格的定位要通过**三级定位**才能定位到具体的单元格
三级定位 行键+列族+时间戳
2.物理结构(模型)
Zookeeper
分布式协调Master
HMaster没有单点问题,Hbase中可以起启动多个HMaster负责Table和Region的管理工作管理用户对Table的增、删、改、查操作RegionServer的负载均衡调整Region分布,在Region Split后,负责新Region的分配在HRegionServer停机后,负责失效HRegionServer上的Regions迁移RegionServer
RegionServer主要负责响应用户的I/O请求向HDFS文件系统中读写数据,是Hbase中最核心的模块HLohg部分和多个Regoion部分Hlog
HLog保存着用户操作hbase的日志实现了Write Ahead Log (WAL) 预写了日志HLog会删除已存储到StoreFile中的数据Region
保存了行键的固定区域范围的数据一个Hregion对应一个区域一个Hregion对应一个HstoreHstore
对应一个列族一个HStore包含一个MemStore(内存储)和多个StoreFileMemStore(内存储)
内存储中的一个区域,一个HStore对应一个内存储当内存储中的内容放不下了,就会刷出到硬盘以一个个的StoreFile存储StoreFile
其实就是数据的存储位置对HFile的封装Hfile
Hadoop FileHdfs的一个文件对象 Hbase读写数据的流程
Zookeeper(寻找元数据信息)
get /hbase/meta-region-server找到提供元数据信息访问的regionserver找“hbase:meta”表,在去查找请求那个regionser来读取数据 Hbase的Shell操作
list_namespace
#列出所有的命名空间(相当于mysql中的show databases)
list_namespace_tables 'ns_name'
#列出指定命名空间下的所有表
create_namespace 'ns1'
#创建命名空间
create 'ns1:t1','f1'
#创建表
disable 'ns1:t1'
#禁用表,因为删除表之前首先需要禁用了
drop 'ns1:t1'
#删除表
put 'ns1:t1','row001','f1:name','xiaohua'
#添加数据
get 'ns1:t1','row001',{COLUMN=>'f1:name'}
#查询数据
delete 'ns1:t1','row001','f1:name'
#删除数据



