HBase是什么? web
HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS做为最基本存储基础单元,经过使用hadoop的DFS工具就能够看到这些这些数据 存储文件夹的结构,还能够经过Map/Reduce的框架(算法)对HBase进行操做,如右侧的图所示:
HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,所以能够经过web界面对HBase进行管理和查看当前运行的一些状态,很是轻巧。 算法
为何采用HBase? 数据库
HBase 不一样于通常的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。 数据结构
HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点相似于如今流行的Memcache,但不单单是简单的一个key对应一个 value,你极可能须要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。 框架
简单来讲,你在HBase中的表建立的能够看作是一张很大的表,而这个表的属性能够根据需求去动态增长,在HBase中没有表与表之间关联查询。你只须要 告诉你的数据存储到Hbase的那个column families 就能够了,不须要指定它的具体类型:char,varchar,int,tinyint,text等等。可是你须要注意HBase中不包含事务此类的功 能。 工具
Apache HBase 和Google Bigtable 有很是类似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,所以用户能够给行定义各类不一样的列,对于这样的功能在大项目中很是实用,能够简化设计和升级的成本。 oop