NoSQL与Apache HBase基础

NoSQL与Apache HBase基础

一、NoSQL概念:

      NoSQL(not only SQL)即非关系型数据库。NoSQL具有以下几个特点:

  • 不遵循传统RDBMS(Relational Database Management System,关系型数据库)模型。
  • 数据是非关系的,且不使用SQL作为主要查询语言。
  • 解决了数据库的可伸缩性和可用性问题。
  • 不针对原子性或一致性问题。

      传统关系型数据库存在的瓶颈:

  • 高并发读写
  • 高存储量
  • 高可用性
  • 高扩展性
  • 降低成本

      NOSQL与关系型数据库的差异:

NoSQL关系型数据库
常用数据库HBase、MongoDB、RedisOracle、MySQL
存储格式文档、键值对、图结构表格式,行和列
存储规范鼓励冗余规范性,避免重复
存储扩展横向扩展,分布式纵向扩展(横向扩展有限)
查询方式结构化查询语言SQL非结构化查询
事务不支持事务一致性支持事务
性能读写性能高读写性能差
成本简单易部署,开源,成本低成本高
1. 三大基石:

      CAP、BASE和最终一致性。
a.CAP
      数据库最多支持Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)中的两个。
      其中HBase支持最终一致性和分区容错性。
b.BASE

  • Basically Availble(基本可用):保证核心可用。
  • Soft-state(软状态):状态可以有一段时间不同步。
  • Eventual Consistency(最终一致性):系统经过一定时间后,数据最终能够达到一致的状态。
    c.最终一致性
          最终结果保持一致性,而不是实时一致。
2.索引和查询:

a.索引:

  • 大多数NoSQL是按key进行索引。
  • 部分NoSQL允许二级索引。
  • HBase使用HDFS,append-only
    i.批处理写入Logged。
    ii.重新创建并排序文件。

b.Query(查询):

  • 没有专门的查询语言,通常使用脚本语言查询。
  • 有些开始支持SQL查询。
  • 有些可以使用MapReduce代码查询。
3.MapReduce、Sharding:

a.MapReduce:

  • 可进行数据的处理查询。
  • 与Hadoop的MapReduce不同但是概念相关。
    b.Sharding(分片):
  • 一种分区模式。
  • 可以复制分片用于灾难恢复。
4.NoSQL分类:
分类常见数据库典型应用场景
键值存储数据库
(key-value)
Redis, MemcacheDB, Voldemort内容缓存等
列存储数据库
(WIDE COLUMN STORE)
Cassandra, HBase应对分布式存储的海量数据
文档型数据库
(DOCUMENT STORE)
CouchDB, MongoDBWeb应用
图数据库
(GRAPH DB)
Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等,专注于构建关系图谱

二、HBase概念:

      HBase是一个面向列存储的数据库,是一个分布式的hash map,它基于Google Big Table论文构建,使用HDFS作为存储并利用其可靠性。
      HBase特点:

  • 数据访问速度快,响应时间约2-20毫秒。
  • 支持随机读写,每个节点20k~100k+ ops/s。
  • 可扩展性好,可扩展到20,000+节点。
HBase主要应用场景:
  • 增量数据-时间序列数据:高容量,高速写入。
  • 信息交换-消息传递:高容量,高速读写。
  • 内容服务-Web后端应用程序:高容量,高速读写。
HBase物理架构:Master/Slave架构

a.HMaster的作用:

  • 是HBase集群的主节点,可以配置多个,用来实现HA(高可用性)。
  • 管理和分配Region。
  • 负责RegionServer的负载均衡。
  • 发现失效的RegionServer并重新分配其上的Region。

b.RegionServer负责管理维护Region:

  • 一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region。
  • 一个Region包含多个存储区,每个存储区对应一个列族。
  • 一个存储区由多个StoreFile和MemStore组成。
  • 一个StoreFile对应于一个HFile和一个列族。
  • HFile和WAL作为序列文件保存在HDFS上。
  • Client与RegionServer交互。
HBase逻辑架构 - Row
  • Rowkey(行键)是唯一的并已排序。
  • Schema可以定义何时插入记录。
  • 每个Row都可以定义自己的列,即使其他Row不使用,相关列定义为列族。
  • 使用唯一时间戳维护多个Row版本,在不同版本中值类型可以不同。
  • HBase数据全部以字节存储。
HBase数据管理

a.数据管理目录:

  • 系统目录表hbase:meta(存储元数据)。
  • HDFS目录中的文件。
  • Servers上的region实例。
HBase架构特点:

a.强一致性
b.自动扩展

  • 当Region变大会自动分割。
  • 使用HDFS扩展数据并管理空间。

c.使用WAL(Write Ahead Log)进行写恢复
d.与Hadoop集成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值