《大数据技术应用与原理》第二版-第四章分布式数据库HBase

4.1概述

  1. HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化松散数据。
  2. HBase与传统数据库的区别
    • 数据类型上的区别,它把数据存储为未经解释的字符串
    • 数据操作,没有像关系型数据库那样的复杂数据操作,通常采用单表的主键查询。
    • 存储模式,关系型数据库是采用行进行存储的,但是HBase是采用列存储的。
    • 数据索引,HBase只有一个索引,就是行键。
    • 数据维护,HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧的版本任然保存。
    • 可伸缩性,关系型数据库很难实现横向扩展,纵向扩展也很有限。而HBase是为了实现灵活的水平扩展而开发的。
    • 但是存在自身的局限性,也就是不支持事务,无法实现跨行的原子性。

4.2HBase访问接口

  1. HBase提供Native Java API、HBase Shell、Thrift Gateway、REST Gateway、Pig、Hive等多种访问方式。

4.3HBase数据模型

  1. HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。列族支持动态扩展。
  2. 表,采用表来组织数据,表由行和列组成。
  3. 行,访问表中行的方式:
    • 通过单个行键访问
    • 通过一个行键的区间来访问
    • 全表扫描
  4. 列族, 它是基本的控制访问单元
  5. 列限定符,列族中的数据通过列限定符来定位,不许事先定义,没有数据类型,但是常常被视为字节数组
  6. 单元格, 通过行键、列族、列限定符确定一个单元格。单元格中没有数据类型,总是被视为字节数组,每个版本对应一个时间戳。
  7. 时间戳, 时间戳一般是64位整型
  8. 数据坐标,由四个定位,行键、列族、列限定符、时间戳。
  9. 概念视图,看起来是像是由许多行组成的。
  10. 物理视图, 但是在物理层面,它是采用了基于列的存储方式。按照列族分开存放,里面包括行键和时间戳。
  11. 面向列存储,行式数据库适合于小批量的数据处理;列式数据库适合面向批量数据处理和即席查询。优点是可以降低I/O开销。

4.4HBase的实现原理

  1. HBase的功能组件,主要有三个功能组件,库函数,链接到每个客户端;Master主服务器;许多个Region服务器。

    • Region服务器负责存储和维护分配给自己的Region,处理来自客户端的读写请求。
    • 主服务器,Master负责管理和维护HBase表的分区信息。
    • Hbase客户端并不依赖于Master而是借助Zookeeper来获得Region的位置。
  2. 表和Region, Region是负载均衡和数据分发的基本单位。,每个Region的大小是100M~200MB,同一个Region是不会被拆分到多个Region服务器上的。
  3. Region的定位,每个Region都有一个的RegionID来标识它的唯一性,一个Region标识符可以表示为“表名+开始主键+RegionID”。映射表包括两项内容,一个是Region的标识符,另一个是Region服务器标识,也称为“元数据表”,又名“.META.表”。如果元数据表过多了,就会产生根数据表,-ROOT-表,客户访问用户数据前,首先访问Zookeeper。

4.5HBase运行机制

  1. 客户端是访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续访问过程。
  2. Zookeeper服务器并非一台单一的机器,可能由多台机器构成的集群来提供稳定可靠的协同服务。Zookeeper中保存了根数据表和Master的地址。
  3. Master, Master服务器主要负责Region的管理工作。
    • 管理用户对于表的增加、删除、修改、查询等操作。
    • 实现不同Region服务器之间的负载均衡
    • 在Region分裂合并后,负责重新调整Region的分布
    • 对于发生故障失效的Region服务器上的Region进行迁移
  4. Region服务器,是HBase最核心的模块,负责维护分配给自己的Region,并且响应读写请求。HBase本身并不具备数据复制和维护数据副本功能,而是HDFS可以为HBase提供这些支持。
1. Region服务器的工作原理
  1. Region服务器中管理了一系列的Region对象和一个HLog文件,其中HLog文件是磁盘上面的记录文件,记录着所有的更新操作。
  2. 每个Region对象又是由多个Store组成,每个Store对应表中的的一个列族存储,每个Store又包含一个MemStore和若干个StoreFile;其中MemStore是内存中的缓存,保存最新更新的数据;StoreFile是磁盘中的文件,这些文件都是B树结构,底层实现方式是HDFS的HFile
2. Store的工作原理
  1. MemStore是排序的内存缓冲区,当MemStore缓存满时,就会刷新到磁盘中的StoreFile文件中。随着多个StoreFile合并称为一个大的文件,当文件超过一个阈值的时候,会触发一个文件分裂操作,同时当前一个父Region会分裂成两个子Region,新分裂出的两个子Region被Master分配到相应的Region服务器上。
3. HLog的工作原理
  1. HBase采用HLog来保证系统发生故障时能够发生故障时能够恢复到正常状态。每个Region服务器中配置一个HLog文件,它是一种预写式日志,也就是被写入日志后才能够写入MemStore缓存。
4. HBase常见的Shell
  1. hbase shell 进入Shell环境
  2. create ‘t1‘, {NAME => ‘f1‘, VERSIONS => 5} 创建表t1,列族f1,列族版本号为5
  3. create ‘t1‘, {NAME => ‘f1‘}, {NAME => ‘f2‘}, {NAME => ‘f3‘} 创建表t1,三个列族,或则使用命令代替create ‘t1‘, ‘f1‘, ‘f2‘, ‘f3‘
  4. list 列出HBase所有的表信息
  5. put ‘t1‘, ‘row1‘, ‘f1:c1‘, ‘value1‘, 1421822284898向表中t1中行row1和列f1:c1对应的单元格中添加数据value1,时间戳为后面那串数字。
  6. get用来获取数据
  7. scan用来浏览表
  8. alter修改列族模式alter ‘t1‘, NAME => ‘f1‘向表t1中添加列族f1alter ‘t1‘, NAME => ‘f1‘ METHOD => ‘delete‘删除表中列f1
  9. count统计表中行数
  10. describe ‘t1‘显示表的相关信息
  11. drop删除表
  12. shutdown关闭集群

原文地址:https://www.cnblogs.com/tsruixi/p/12081733.html

时间: 2024-10-07 22:22:01

《大数据技术应用与原理》第二版-第四章分布式数据库HBase的相关文章

具体数学第二版第四章习题(2)

16 $\frac{1}{e_{1}}=\frac{1}{2},\frac{1}{e_{1}}+\frac{1}{e_{2}}=\frac{5}{6},\frac{1}{e_{1}}+\frac{1}{e_{2}}+\frac{1}{e_{3}}=\frac{41}{42}$,由此猜测$\sum_{i=1}^{k}\frac{1}{e_{i}}=\frac{e_{k+1}-2}{e_{k+1}-1}$ 假设前$n$项都成立,即$\sum_{i=1}^{n}\frac{1}{e_{i}}=\fra

具体数学第二版第四章习题(4)

46 (1)假设$j^{'}j-k^{'}k=Gcd(j,k)$,那么有$n^{j^{'}j}=n^{k^{'}k}n^{Gcd(j,k)}$,所以如果$n^{j^{'}j}=pm+1,n^{k^{'}k}=qm+1\rightarrow n^{Gcd(j,k)}=rm+1$ (2)假设$n=pq$并且$p$是$n$的最小素因子(如果$n$为素数那么$p=n$).所以$2^{p-1}\equiv 1(mod(p))$.如果$2^{n}\equiv 1(mod(n))\rightarrow 2^{

大数据技术原理与应用——大数据处理架构Hadoop

Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中. Hadoop的核心是分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce. Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力. Hadoop的特性 Hadoop是一个能够对大量数据进

基于大数据技术之电视收视率企业项目实战(hadoop+Spark)张长志(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

基于大数据技术推荐系统算法案例实战视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

大数据技术之Hadoop入门

? 第1章 大数据概论 1.1 大数据概念 大数据概念如图2-1 所示. 图2-1 大数据概念 1.2 大数据特点(4V) 大数据特点如图2-2,2-3,2-4,2-5所示 图2-2 大数据特点之大量 图2-3 大数据特点之高速 图2-4 大数据特点之多样 图2-5 大数据特点之低价值密度 1.3 大数据应用场景 大数据应用场景如图2-6,2-7,2-8,2-9,2-10,2-11所示 图2-6 大数据应用场景之物流仓储 图2-7 大数据应用场景之零售 图2-8 大数据应用场景之旅游 图2-9

大数据技术之数据采集篇

[导读]数据采集是进行大数据分析的前提也是必要条件,在整个流程中占据重要地位.本文将介绍大数据三种采集形式:系统日志采集法.网络数据采集法以及其他数据采集法. (一)系统日志采集法 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以监视系统中发生的事件.用户可以通过它来检查错误发生的原因,或者寻找受到***时***者留下的痕迹.系统日志包括系统日志.应用程序日志和安全日志.(百度百科)大数据平台或者说类似于开源Hadoop平台会产生大量高价值系统日志信息,如何采集成为研究者研究热点.目前

基于大数据技术的手机用户画像与征信研究

内容提要:手机用户画像是电信运营商实现“数据驱动业务与运营”的重要举措.首先,介绍了手机用户画像过程中对个人隐私保护的方法,然后分析手机用户画像的数据来源与大数据实现技术,最后,通过数据样本实例分析手机用户画像在个人征信中的应用. 引言 随着计算机网络技术的不断发展,“数据即资源”的大数据时代已经来临.用户画像是电信运营商为了避免管道化风险,实现“数据驱动业务与运营”的重要举措.用户画像与应用大数据技术对客户分类密切相关,是单个客户的众多属性标签的累积:另一方面,在运营商涉足的消费金融领域,对手

除Hadoop大数据技术外,还需了解的九大技术

除Hadoop外的9个大数据技术: 1.Apache Flink 2.Apache Samza 3.Google Cloud Data Flow 4.StreamSets 5.Tensor Flow 6.Apache NiFi 7.Druid 8.LinkedIn WhereHows 9.Microsoft Cognitive Services Hadoop是大数据领域最流行的技术,但并非唯一.还有很多其他技术可用于解决大数据问题.除了Apache Hadoop外,另外9个大数据技术也是必须要了