Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)

NoSQL综述及Apache HBase基础

  • 一.HBase
    • 1.HBase概述
    • 2.HBase发展历史
    • 3.HBase应用场景
      • 3.1增量数据-时间序列数据
      • 3.2信息交换-消息传递
      • 3.3内容服务-Web后端应用程序
      • 3.4HBase应用场景示例
    • 4.Apache HBase生态圈
    • 5.HBase物理架构
      • 5.1 HMaster
      • 5.2RegionServer
      • 5.3Region和Table
    • 6.HBase逻辑架构 - Row
    • 7.HBase数据管理
    • 8.HBase架构特点
    • 9.HBase Shell
      • 9.1创建表:create
      • 9. 2查看所有表:list,describe
      • 9.3添加数据:put
      • 9.4扫描表:scan
      • 9.5获取数据:get
      • 9.6删除数据:delete
      • 9.7修改表:alter
      • 9.8删除表drop

一.HBase

1.HBase概述

  • HBase是一个领先的NoSQL数据库
    是一个面向列存储的数据库
    是一个分布式hash map
    基于Google Big Table论文
    使用HDFS作为存储并利用其可靠性
  • HBase特点
    数据访问速度快,响应时间约2-20毫秒
    支持随机读写,每个节点20k~100k+ ops/s
    可扩展性,可扩展到20,000+节点

2.HBase发展历史

时间 事件
2006年 Google发表了关于Big Table论文
2007年 第一个版本的HBase和Hadoop0.15.0一起发布
2008年 HBase成为Hadoop的子项目
2010年 HBase成为Apache顶级项目
2011年 Cloudera基于HBase0.90.1推出CDH3
2012年 HBase发布了0.94版本
2013-2014 HBase先后发布了0.96版本/0.98版本
2015-2016 HBase先后发布了1.0版本、1.1版本和1.2.4版本
2017年 HBase发布1.3版本
2018年 HBase先后发布了1.4版本和2.0版本

3.HBase应用场景

3.1增量数据-时间序列数据

​ 高容量,高速写入

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第1张图片

3.2信息交换-消息传递

高容量,高速读写

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第2张图片

3.3内容服务-Web后端应用程序

高容量,高速读写

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第3张图片

3.4HBase应用场景示例

  • Facebook
    9000 memcached instances,4000 shards mysql
    2011全部迁移到HBase
  • Alibaba
    自2010年以来,HBase一直为阿里搜索系统的核心存储
    当前规模
    3 个集群,每个有1000+ nodes
    在Yarn上与Flink共享
    每天提供超过10M+ ops/s 的服务

4.Apache HBase生态圈

HBase生态圈技术
Lily – 基于HBase的CRM
OpenTSDB – HBase面向时间序列数据管理
Kylin – HBase上的OLAP
Phoenix – SQL操作HBase工具
Splice Machine – 基于HBase的OLTP
Apache Tephra – HBase事务支持
TiDB – 分布式SQL DB
Apache Omid - 优化事务管理
Yarn application timeline server v.2 迁移到HBase
Hive metadata存储可以迁移到HBase
Ambari Metrics Server将使用HBase做数据存储

5.HBase物理架构

HBase采用Master/Slave架构

  • HMaster
  • RegionServer
  • Zookeeper
  • HBase Client
  • Region

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第4张图片

5.1 HMaster

HMaster的作用

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

5.2RegionServer

RegionServer负责管理维护Region

  • 一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region
  • 一个Region包含多个存储区,每个存储区对应一个列族
  • 一个存储区由多个StoreFile和MemStore组成(MemStore内存)
  • 一个StoreFile对应于一个HFile和一个列族
  • HFile和WAL作为序列文件保存在HDFS上
  • Client与RegionServer交互

功能

  • 负责管理HBase的实际数据

  • 处理分配给它的Region

  • 刷新缓存到HDFS

  • 维护HLog

  • 执行Compaction

  • 负责处理Region分片

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第5张图片

5.3Region和Table

  • 单个Table(表)被分区成大小大致相同的Region
  • Region是HBase集群分布数据的最小单位
  • Region被分配给集群中的RegionServer
  • 一个Region只能分配给一个RegionServer

HRegion

HBase使用表(table)存储数据集,表由行和列组成,这与关系型数据库类似。但是在HBase,当表的大小超过设定值时,HBase会自动将表划分为不同的区域(Region),每个区域成为HRegion,它是HBase集群上分布式存储和负载均衡的最小单位,在这一点上,表和HRegion类似于HDFS中文件和文件块的概念。一个HRgion中保存一个表中一段连续的数据,通过表名和主键范围(开始主键~结束主键)来区分每一个HRgion。

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第6张图片

6.HBase逻辑架构 - Row

  • Rowkey(行键)是唯一的并已排序
  • Schema可以定义何时插入记录
  • 每个Row都可以定义自己的列,即使其他Row不使用
    相关列定义为列族
  • 使用唯一时间戳维护多个Row版本
    在不同版本中值类型可以不同
  • HBase数据全部以字节存储

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第7张图片

7.HBase数据管理

  • 数据管理目录
    系统目录表hbase:meta
    存储元数据等
    HDFS目录中的文件
    Servers上的region实例
  • HBase数据在HDFS上
    可以通过HDFS进行修复File
    修复路径:
    RegionServer->Table->Region->RowKey->列族

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)_第8张图片

8.HBase架构特点

  • 强一致性
  • 自动扩展
    当Region变大会自动分割
    使用HDFS扩展数据并管理空间
  • 写恢复
    使用WAL(Write Ahead Log)
  • 与Hadoop集成

你可能感兴趣的:(HBase,HBase,shell,hbase物理架构,hbase逻辑架构,hbase)