浅析Hbase

无论是 NoSQL,还是大数据领域,HBase 都是非常"炙热"的一门数据库。本文将对 HBase 做一些基础性的介绍,旨在入门。

一、简介

HBase 是一个开源的、面向列的非关系型分布式数据库,目前是Hadoop体系中非常关键的一部分。在最初,HBase是基于谷歌的 BigTable 原型实现的,许多技术来自于Fay Chang在2006年所撰写的Google论文"BigTable"。与 BigTable基于Google文件系统(File System)一样,HBase则是基于HDFS(Hadoop的分布式文件系统)之上而开发的。

HBase 采用 Java 语言实现,在其内部实现了BigTable论文提到的一些压缩算法、内存操作和布隆过滤器等,这些能力使得HBase 在海量数据存储、高性能读写场景中得到了大量应用,如 Facebook 在 2010年11 月开始便一直选用 HBase来作为消息平台的存储层技术。HBase 以 Apache License Version 2.0开源,这是一种对商业应用友好的协议,同时该项目当前也是Apache软件基金会的顶级项目之一。

有什么特性

  • 基于列式存储模型,对于数据实现了高度压缩,节省存储成本

  • 采用 LSM 机制而不是B(+)树,这使得HBase非常适合海量数据实时写入的场景

  • 高可靠,一个数据会包含多个副本(默认是3副本),这得益于HDFS的复制能力,由RegionServer提供自动故障转移的功能

  • 高扩展,支持分片扩展能力(基于Region),可实现自动、数据均衡

  • 强一致性读写,数据的读写都针对主Region上进行,属于CP型的系统

  • 易操作,HBase提供了Java API、RestAPI/Thrift API等接口

  • 查询优化,采用Block Cache 和 布隆过滤器来支持海量数据的快速查找

猜你喜欢

转载自blog.csdn.net/jxq0816/article/details/103345874