HBase之简介
2015-03-10 01:35
344 查看
(一)HBase之简介
* 概念
* HBase是一个高可靠性、高性能、面向列、可伸缩、支持版本控制、稀疏的、多维度的和排序的分布式数据库。* [b]高可靠性:[/b]
* (1): 在数据的写入过程中,数据首先会写到预写日志WAL(write ahead log)中,再写到memstore(内存)中,一旦
HRegionServer宕机,可以回滚WAL,重新写入数据;
* (2):数据存储时,一般是用Hadoop的hdfs作为底层存储,可以设置多个数据副本,数据会保存在本机、同一机架的不
同机器以及不同机架的机器上,利用数据的冗余存储来保证数据的安全性
* 高性能:
* 可以处理PB级别,低延迟,秒级别响应且保证一定的性能*可伸缩:
* 可以通过横向添加廉价的pc server来扩展整个系统的存储、处理能力* 支持版本控制:
* 保存数据操作时的时间戳,可以配置版本数量* 稀疏的:
* HBase逻辑上是一张宽表,有许多空值,但是物理上不会存储* 多维度:
* RDBMS的表由行和列组成,我们也叫它二维表,HBase有行健、列族、列、时间戳组成,所以也叫多维表* 排序的:
* HBase行健和列是按照字典排序的方式存储在文件中* 作用
*(1):弥补了Hadoop只能离线批处理的不足,能够存储小文件*(2):解决海量的非结构化数据的高并发随机读写性能的问题
[b]* 特性[/b]
* 通过行健检索数据,仅支持单行事务,主要用于存储非结构化和半结构化的松散数据* 容量巨大
* HBase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数量级非常具有弹性
* 传统数据库如Mysql、Oracle等,如果数据在亿级别,查询和写入性能将成指数级别下降,而HBase对百亿、千亿级数量不成
问题
* 如果是亿级别的列,如果不是查询整个RowKey,指定一些列是没有问题
* 面向列
* HBase的数据是按照列存储的,在查询某几个字段的时候能够大大减速读取的数据量,比如某个字段聚集存储,就更容易设计
压缩算法
* 稀疏性
* 传统数据库往往是稀疏的,存在大量空列,而且会占用空间,造成存储空间浪费,而HBase不会存储空的列,因此可以设计得
非常稀疏
* 扩展性
* HBase的扩展是热扩展,在不停止现有服务的情况下,可以随时添加或者减少节点
* 高可靠性
* HBase提供了WAL和Replication机制
* 高性能
* 底层的LSM数据结构和RowKey有序排列等架构上的独特设计,HBase具备非常高的写入性能
* Region切分、主键索引和缓存机制使得HBase在海量数据具备一定的随机读取性能,该性能对行健的查询能够达到毫秒级别
* HBase对于高并发的场景也据有很好的适应能力
* [b]应用场景条件[/b]
* 存储大量数据(PB级别数据)且保证良好的随机访问性能
* 需要很高的吞吐量、瞬间写入量很大,传统数据库不能支持或需要很高成本的场景
* 可以进行很优雅的数据扩展,动态扩展整个存储系统容量
* 数据格式无限制,支持半结构化和非结构化数据
* 业务场景简单,不需要全部的关系型数据库特性,例如交叉列、交叉表、事务、连接等
* [b]主要组件模块[/b]
* Client* JAVA API
* Shell
* Thrift
* Avro
* Rest
* Zookeeper
* HMaster
* HRegionServer
相关文章推荐
- hbase简介
- Hbase安装与简介
- Hbase 入门简介
- HBase框架简介(整理)
- HBase简介(很好的梳理资料)
- 【Hbase学习】snapshot 简介
- Hbase简介之一
- hbase简介
- Hbase安装与简介
- HBase 0.98 发布简介
- Phoenix(sql on hbase)简介
- HBase简介-HBase企业应用实战读书笔记1
- hbase快速入门之---简介
- HBase简介(很好的梳理资料)
- 【NoSQL】NoSQL简介及常用的NoSQL数据库对比(Redis、MongoDB、HBase等)
- 【Hadoop学习】Apache HBase项目简介
- Hbase简介和理解
- HBASE简介
- hbase 简介
- HBase简介(很好的梳理资料)