HBASE-HBase概述

1 篇文章 0 订阅

什么是HBase?

HBase是一种非关系型数据库(NoSQL)。 “NoSQL"是一个通用词表示数据库不是RDBMS(关系型数据库管理系统),后者支持 SQL 作为主要访问手段。有许多种 NoSQL 数据库: BerkeleyDB 是本地 NoSQL 数据库例子, 而 HBase 是大型分布式数据库。 从技术上来说, HBase 更像是"数据存储(Data Store)” 多于 “数据库(Data Base)”。因为缺少很多RDBMS特性, 如列类型,第二索引,触发器,高级查询语言等.

然而, HBase 有许多特征同时支持线性化和模块化扩充。 HBase 集群通过增加RegionServers进行扩充。 它可以放在普通的服务器中。

HBase 特性:
大:一个表可以有数十亿行,上百万列;
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
面向列:面向列(族)的存储和权限控制,列(族)独立检索;
稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:Hbase中的数据都是字符串,没有类型。这让它很适合高速计数聚合类任务。
自动分区: HBase 表通过region分布在集群中。数据增长时,region会自动分割并重新分布。
RegionServer 自动故障转移
Hadoop/HDFS 集成: HBase 支持本机外HDFS 作为它的分布式文件系统。
MapReduce: HBase 通过MapReduce支持大并发处理, HBase 可以同时做源和目标.

什么时候用 HBase?

HBase不适合所有问题.

首先,确信有足够多数据,如果有上亿或上百亿行数据,HBase是很好的备选。 如果只有上千或上百万行,则用传统的RDBMS可能是更好的选择。因为所有数据可以在一两个节点保存,集群其他节点可能闲置。

其次,确信可以不依赖所有RDBMS的额外特性 (列数据类型, 第二索引, 事物,高级查询语言等.) 一个建立在RDBMS上应用,如不能仅通过改变一个JDBC驱动移植到HBase。相对于移植, 需考虑从RDBMS 到 HBase是一次完全的重新设计。

第三, 确信你有足够硬件。

HBase的重要进程

HMaster:
管理meta表还其他表结构命名空间
管理Hregionserver
接收客户端请求
表的创建和删除
一般和namenode在一个节点上
HRegionserver
管理region拆分合并
memstore写入Hfile
表级操作
负载均衡
一般和datanode在同一节点上

memstore
数据默认存到内存memstore
memstore达到阀值把数据存到本地Hfile中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值