海量数据存储解决方案:Hbase数据库解析
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
HBase的应用场景及特点 交通 金融 电商 移动(电话信息)等
Hbase表结构与架构详解
介绍:基于HDFS,面向列,nosql
基于HDFS: HDFS:hadoop distributed file system:分布式文件系统:多台服务器组成的服务器集群组成的一个文件系统。
面向列: 表结构中的列是可以动态添加的。
架构图:分布式,主从架构
zookeeper: 职责: 1:保证任何时候,集群中只有一个Master 2: 实时监控RegionServer的上线和下线信息,并且实时通知master 3: 存储着region的寻址入口 Hmaster: 职责: 1:为regionserver分配region 2:发现了失效了regionserver,并且重新分配其上的region 3: 为regionserver做负载均衡 RegionServer: 职责: 1:regionserver负责维护region,处理对这些region的IO请求 2:regionserver负责在运行过程当中变得过大的region
搭建环境: HDFS Hbase
表结构:
列族:列的集合,它是表模式不能修改的。 列:一定要归属于某一个列族,列可以动态的添加 行键:rowkey 确定这一行数据的唯一标识 特点: 1 按照字典顺序排序 2 只能存储64k的数据
单元格:行键 列 时间戳:区分一个单元格里面的多份数据,默认使用系统时间。
Hbase数据库的操作
shell命令行: list:列出所欲表 create “表名”,“列族”,“多个列族” put “表名”,“行键”,“列族:列”,“值” get “表名”,“行键” disable 表名 drop 表名 删除表 scan:查询全名 sqoop:数据传输