大数据学习(4)--分布式数据库HBase

文章目录

  • 目录
    • 1.HBase概述
      • 1.1BigTable
      • 1.2 HBase简介
      • 1.3 HBase和传统的关系型数据库之间的区别
    • 2.HBase访问接口
    • 3.HBase数据模型
      • 3.1 数据模型概述
      • 3.2 数据模型相关概念
      • 3.3 数据坐标
      • 3.4 概念视图
      • 3.5 物理视图
      • 3.6 面向列的存储
    • 4.HBase的实现原理
      • 4.1 HBase功能组件
      • 4.2 表和region
      • 4.3 region的定位
    • 5.HBase运行机制
      • 5.1 HBase系统架构
      • 5.2 region服务器工作原理
      • 5.3 Store工作原理
      • 5.4 HLog工作原理
    • 6.HBase应用方案
      • 6.1 HBase实际应用过程中的性能优化方案
      • 6.2 HBase性能监测
      • 6.3 在HBase上构建SQL引擎
      • 6.4 构建HBase二级索引(列的直接索引)
    • 7.HBase编程实践
      • 7.1 HBase的安装和配置
      • 7.2 HBase常用的Shell命令
      • 7.3 HBase常用的JAVA API及应用
    • 8.总结

目录

1.HBase概述

1.1BigTable

大数据学习(4)--分布式数据库HBase_第1张图片
大数据学习(4)--分布式数据库HBase_第2张图片

1.2 HBase简介

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表

大数据学习(4)--分布式数据库HBase_第3张图片大数据学习(4)--分布式数据库HBase_第4张图片

1.3 HBase和传统的关系型数据库之间的区别

大数据学习(4)--分布式数据库HBase_第5张图片
大数据学习(4)--分布式数据库HBase_第6张图片

2.HBase访问接口

大数据学习(4)--分布式数据库HBase_第7张图片

3.HBase数据模型

3.1 数据模型概述

  • HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符(列名)和时间戳每个值是一个未经解释的字符串,没有数据类型
  • 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列
  • 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起
  • 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换
  • HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

3.2 数据模型相关概念

大数据学习(4)--分布式数据库HBase_第8张图片

3.3 数据坐标

大数据学习(4)--分布式数据库HBase_第9张图片

3.4 概念视图

大数据学习(4)--分布式数据库HBase_第10张图片

3.5 物理视图

从上面的概念师徒我们可以看到,有很多行的记录在某些列簇的列上面时没有数据的,如果直接按照概念视图进行存储,则会造成很大的空间上的浪费,所以物理视图中,将概念视图中按照列簇进行拆分成多个表格,然后对拆分后的表格进行存储。
大数据学习(4)--分布式数据库HBase_第11张图片

3.6 面向列的存储

大数据学习(4)--分布式数据库HBase_第12张图片

行式存储指的是将一条记录以行的方式进行存储;列式存储指的是将一条记录按照列的方式进行存储。

大数据学习(4)--分布式数据库HBase_第13张图片
列式存储相比于行式存储的优势:

  • 由于在实际的数据分析应用中,我们常常感兴趣的是某一列的数据的一个分布情况,所以按照列存储的话,很方便的将数据按照属性(列名)提取出来。如果按照行存储,则要遍历每一行,然后将数据进行拼接,效率低下。
  • 每条记录的相同列的数据的取值,类型相近,利于数据的存储
  • 可以动态的实现列的添加,而不像传统的关系型数据库,在确定表的结构后便无法进行修改。

4.HBase的实现原理

4.1 HBase功能组件

大数据学习(4)--分布式数据库HBase_第14张图片

4.2 表和region

在这里插入图片描述
大数据学习(4)--分布式数据库HBase_第15张图片

4.3 region的定位

大数据学习(4)--分布式数据库HBase_第16张图片

元数据:描述数据的数据

大数据学习(4)--分布式数据库HBase_第17张图片
大数据学习(4)--分布式数据库HBase_第18张图片
大数据学习(4)--分布式数据库HBase_第19张图片

5.HBase运行机制

5.1 HBase系统架构

大数据学习(4)--分布式数据库HBase_第20张图片
大数据学习(4)--分布式数据库HBase_第21张图片
大数据学习(4)--分布式数据库HBase_第22张图片

5.2 region服务器工作原理

大数据学习(4)--分布式数据库HBase_第23张图片
大数据学习(4)--分布式数据库HBase_第24张图片
大数据学习(4)--分布式数据库HBase_第25张图片
大数据学习(4)--分布式数据库HBase_第26张图片

5.3 Store工作原理

大数据学习(4)--分布式数据库HBase_第27张图片

5.4 HLog工作原理

大数据学习(4)--分布式数据库HBase_第28张图片
大数据学习(4)--分布式数据库HBase_第29张图片

6.HBase应用方案

6.1 HBase实际应用过程中的性能优化方案

默认的HBase行健时按照升序存储的,而实际应用中常常时查看最新的几条记录,所以实际过程中会将HBase的存储修改为降序存储。
大数据学习(4)--分布式数据库HBase_第30张图片
大数据学习(4)--分布式数据库HBase_第31张图片

6.2 HBase性能监测

  • Master-status(自带)
    大数据学习(4)--分布式数据库HBase_第32张图片
  • Ganglia
    大数据学习(4)--分布式数据库HBase_第33张图片
  • OpenTSDB
    大数据学习(4)--分布式数据库HBase_第34张图片
  • Ambari
    大数据学习(4)--分布式数据库HBase_第35张图片

6.3 在HBase上构建SQL引擎

大数据学习(4)--分布式数据库HBase_第36张图片
大数据学习(4)--分布式数据库HBase_第37张图片

6.4 构建HBase二级索引(列的直接索引)

大数据学习(4)--分布式数据库HBase_第38张图片
大数据学习(4)--分布式数据库HBase_第39张图片
大数据学习(4)--分布式数据库HBase_第40张图片

大数据学习(4)--分布式数据库HBase_第41张图片
大数据学习(4)--分布式数据库HBase_第42张图片

7.HBase编程实践

参考网站

7.1 HBase的安装和配置

大数据学习(4)--分布式数据库HBase_第43张图片

7.2 HBase常用的Shell命令

大数据学习(4)--分布式数据库HBase_第44张图片
大数据学习(4)--分布式数据库HBase_第45张图片
大数据学习(4)--分布式数据库HBase_第46张图片
大数据学习(4)--分布式数据库HBase_第47张图片

7.3 HBase常用的JAVA API及应用

大数据学习(4)--分布式数据库HBase_第48张图片
大数据学习(4)--分布式数据库HBase_第49张图片
大数据学习(4)--分布式数据库HBase_第50张图片

8.总结

大数据学习(4)--分布式数据库HBase_第51张图片

你可能感兴趣的:(ML&DL-大数据学习,大数据,HBase)