HBase的核心概念

HBase是hadoop领域的数据库。因为处理海量数据,并且底层依赖于hadoop。

最大的特点是对海量数据(TB到PB级别)进行毫秒级查询。

HBase逻辑结构特点
1.NoSQL数据库,并不是严格意义上的关系型数据库。
   SQL语言的特点决定了关系型数据库的结构。底层是关系代数。按行进行存储的,表中的数据会进行格式化,
   字段的类型,格式都是固定的,结构化的目的是为了进行快速查询,查询的时候是先把行加载到内存中,
   在传统的关系型数据库中,如果单表字段非常多,查询字段非常少的情况下,会造成极大的资源浪费(主要是浪费内存)。

2.本身是不支持SQL的。查询采用了最原始的查询方式,key、value,key就是行键,非常类似于主键,
   value就是一行记录。  

3.时间戳是数据插入到HBase中的时间。 HBase中为什么会有时间戳这个概念?
   HBase是根据Google的Big Table的论文演变而来的,之前在Big Table中就有时间戳这一概念,
   就自然而然的引到了HBase中。

HBase物理结构特点:
1.列簇是一系列列的集合。列簇是单独存储为HDFS文件的。
2.集群结构分为主从式的。主节点HMaster负责管理调度,很多个从节点HRegionServer负责执行写入、查询的操作。
问题:如果写入、查询都是高并发的,怎么样解决高并发带来的拥堵状况呢?
          方案1:放到消息队列中,让其排队。
          方案2:采用分布式,让多个任务同时执行,所以HBase的集群结构为主从式的,就是特点2描述的。

HBase列和列簇概念:
HBase数据是按照列存储的。经常在一起被查询的字段可以放在一起,形成列簇,单独形成磁盘文件。
形成列簇的原因是什么?减少文件数量,减少IO操作,下面的问题验证了此观点
问题:100个字段,要写到100个文件中吗?
          不是。每个文件打开都是一次IO操作,IO是很耗性能的,所以要把经常在一起被查询的
          字段放在一起,放在一个文件中,形成列簇。

HBase为什么能对海量数据进行毫秒级查询?低层运用了那些核心技术?
分布式、索引、缓存
索引本质上就是key-value键值对。行健相当于key,索引相当于是需要查询的数据在文件中的位置
关系型数据库:按行进行存储的,字段是格式化过的。只要实现快速查询,必须用索引。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值