HBase(一)——HBase介绍

2023-11-07

HBase介绍

1、关系型数据库与非关系型数据库

(1)关系型数据库

关系型数据库

​ 关系型数据库最典型的数据机构是表,由二维表及其之间的联系所组成的一个数据组织

​ 优点:

​ 1、易于维护:都是使用表结构,格式一致

​ 2、使用方便:SQL语言通用,可用于复杂查询

​ 3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询

​ 缺点:

​ 1、读写性能比较差,尤其是海量数据的高效率读写

​ 2、固定的表结构,灵活度稍欠

​ 3、高并发读写需求,传统关系型数据库,硬盘IO是一个很大的瓶颈

(2)非关系型数据库

非关系型数据库

​ 非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或键值对

​ 优点:

​ 1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片 形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

​ 2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘

​ 3、高扩展性

​ 4、成本低:nosql数据库部署简单,基本都是开源软件

​ 缺点:

​ 1、不提供sql支持,学习和使用成本较高;

​ 2、无事务处理

​ 3、数据结构相对复杂,复杂查询方面稍欠

2、HBase简介

    Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.

​ HBase的全称是Hadoop Database,是一个高可靠性,高性能、面向列、可伸缩、实时读写的分布式数据库。

​ 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务。

​ 主要用来存储非结构化和半结构化数据的松散数据(列存NoSQL数据库)。

​ 注意:NoSQL的全称是Not Only SQL,泛指非关系型数据库。

3、HBase数据模型

hbase数据模型

(1)rowkey

​ (1)决定一行数据,每行记录的唯一标识

​ (2)按照字典序排序

​ (3)RowKey只能存储64K的字节数据

(2)Column Family & Qualifier

​ (1)HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出。如 create ‘test’, ‘course’;

​ (2)列名以列族作为前缀,每个“列族”都可以有多个列成员(column);如course:math, course:english, 新的列族成员(列)可以随后按需、动态加入;

​ (3)权限控制、存储以及调优都是在列族层面进行的;

​ (4)HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。

(3)TimeStamp时间戳

​ (1)在HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。

​ (2)时间戳的类型是 64位整型。

​ (3)时间戳可以由HBase(在数据写入时自动)赋值,此时间戳是精确到毫秒的当前系统时间。

​ (4)时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。

(4)Cell

​ (1)由行和列的坐标交叉决定;

​ (2)单元格是有版本的;

​ (3)单元格的内容是未解析的字节数组;

​ 1、由{row key, column( = +), version} 唯一确定的单元。
​ 2、cell中的数据是没有类型的,全部是字节数组形式存贮。

4、HBase架构

hbase架构图

角色介绍:
(1)Client

​ 1、包含访问HBase的接口并维护cache来加快对HBase的访问。

(2)Zookeeper

​ 1、保证任何时候,集群中只有一个活跃master

​ 2、存储所有region的寻址入口

​ 3、实时监控region server的上线和下线信息,并实时通知master

​ 4、存储HBase的schema和table元数据

(3)Master

​ 1、为region server分配region

​ 2、负责region server的负载均衡

​ 3、发现失效的region server并重新分配其上的region

​ 4、管理用户对table的增删改操作

(4)RegionServer

​ 1、region server维护region,处理对这些region的IO请求

​ 2、region server负责切分在运行过程中变得过大的region

regionserver组件介绍
(1)region

​ 1、HBase自动把表水平划分成多个区域(region),每个region会保存一个表里某段连续的数据

​ 2、每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阈值的时候,region就会等分会两个新的region(裂变)

​ 3、当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。

(2)Memstore与storefile

​ 1、一个region由多个store组成,一个store对应一个CF(列族)

​ 2、store包括位于内存中的memstore和位于磁盘的storefile写操作先写入memstore,当memstore中的数据达到某个阈值,hregionserver会启动flashcache进程写入storefile,每次写入形成单独的一个storefile

​ 3、当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major ),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile

​ 4、当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡

​ 5、客户端检索数据,先在memstore找,找不到去blockcache,找不到再找storefile

注意问题:

​ 1、HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的 HRegion server上。

​ 2、HRegion由一个或者多个Store组成,每个store保存一个columns family。

​ 3、每个Strore又由一个memStore和0至多个StoreFile组成。如图:StoreFile以HFile格式保存在HDFS上。

hbase架构图3

5、HBase读写流程

(1)读流程

​ 1、客户端从zookeeper中获取meta表所在的regionserver节点信息

​ 2、客户端访问meta表所在的regionserver节点,获取到region所在的regionserver信息

​ 3、客户端访问具体的region所在的regionserver,找到对应的region及store

​ 4、首先从memstore中读取数据,如果读取到了那么直接将数据返回,如果没有,则去blockcache读取数据

​ 5、如果blockcache中读取到数据,则直接返回数据给客户端,如果读取不到,则遍历storefile文件,查找数据

​ 6、如果从storefile中读取不到数据,则返回客户端为空,如果读取到数据,那么需要将数据先缓存到blockcache中(方便下一次读取),然后再将数据返回给客户端。

​ 7、blockcache是内存空间,如果缓存的数据比较多,满了之后会采用LRU策略,将比较老的数据进行删除。

(2)写流程

​ 1、客户端从zookeeper中获取meta表所在的regionserver节点信息

​ 2、客户端访问meta表所在的regionserver节点,获取到region所在的regionserver信息

​ 3、客户端访问具体的region所在的regionserver,找到对应的region及store

​ 4、开始写数据,写数据的时候会先想hlog中写一份数据(方便memstore中数据丢失后能够根据hlog恢复数据,向hlog中写数据的时候也是优先写入内存,后台会有一个线程定期异步刷写数据到hdfs,如果hlog的数据也写入失败,那么数据就会发生丢失)

​ 5、hlog写数据完成之后,会先将数据写入到memstore,memstore默认大小是64M,当memstore满了之后会进行统一的溢写操作,将memstore中的数据持久化到hdfs中,

​ 6、频繁的溢写会导致产生很多的小文件,因此会进行文件的合并,文件在合并的时候有两种方式,minor和major,minor表示小范围文件的合并,major表示将所有的storefile文件都合并成一个,具体详细的过程,后续会讲解。

转载于:https://www.cnblogs.com/littlepage/p/11293824.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HBase(一)——HBase介绍 的相关文章

  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 心灵与大脑的沟通:如何让大脑更好地理解我们的情感

    1 背景介绍 心理学和人工智能之间的界限已经不断模糊化 尤其是在情感智能方面 情感智能是一种新兴的人工智能技术 旨在让计算机更好地理解和回应人类的情感 这篇文章将探讨如何让大脑更好地理解我们的情感 以及在这个过程中涉及的核心概念 算法原理
  • 如何成为一名数据科学家:必须掌握的技能和知识

    1 背景介绍 数据科学家是一种新兴的职业 它结合了计算机科学 统计学 数学和领域知识等多个领域的知识和技能 以解决实际问题 数据科学家的主要任务是收集 清洗 分析和解释大量数据 从中挖掘有价值的信息和知识 并将其应用于决策和预测 数据科学家
  • 机器智能与人类智能的竞争:技术创新的驱动力

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是最近几年最热门的技术领域之一 随着数据量的增加和计算能力的提高 机器学习技术的发展得到了极大的推动 机器学习
  • 技术管理者的核心能力在哪?

    作为管理者我曾经被下属当面问过 你为什么不写代码 诚然 我最近两年 代码越写越少 会越开越多 但 存在真的合理吗 我的核心能力应该是什么 看了一篇文章 它提出一个观点 技术管理者的核心能力在于技术判断力 通过在技术领域和非技术领域的长期积累
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】Java图书馆智能选座系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本图书馆智能选座系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管
  • 2024年华数杯国际赛B题:光伏发电功率 思路模型代码解析

    2024年华数杯国际赛B题 光伏发电功率 Photovoltaic Power 一 问题描述 中国的电力构成包括传统能源发电 如煤 油和天然气 可再生能源发电 如水电 风能 太阳能和核能 以及其他形式的电力 这些发电模式在满足中国对电力的巨
  • 排序:计数排序

    一 概念 计数排序是非比较排序 是对哈希直接定址法的变形应用 二 思想 利用数组统计相同数据出现的次数 例如整型数据m出现n次 就在数组m位置记录数据为n 最后从头遍历数组打印数据即可 通俗来讲就是 数组下标即为数据 下标所指位置的值即为数
  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 扬帆证券:突发利好!外资重大转变,A股收到多份喜报

    A股财报季 利好音讯密集传来 1月16日晚间 A股多家上市公司披露了成绩预告 其间成绩预增 扭亏等利好公告数量占比超80 其间 普瑞眼科公告 估计2023年净赢利同比添加高达1163 98 1285 51 别的 多家上市公司公告称 估计20
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 30天精通Nodejs--第二十天:express-操作mysql

    目录 前言 安装依赖并配置MySQL连接 安装mysql2库 配置连接信息 在Express应用中使用MySQL 结合Express路由实现CRUD操作 整合到主应用 结语 前言 在Node js中使用Expre
  • 使用企业订货软件的担忧与考虑|网上APP订货系统

    使用企业订货软件的担忧与考虑 网上APP订货系统 网上订货系统担心出现的问题 1 如果在订货系统中定错 多 货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误 但是网上订货平台为大家提供了很多的解决方案 其中对于订单的修改
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 每日变更的最佳实践

    在优维公司内部 我们采用发布单的方式进行每天的应用变更管理 这里给各位介绍优维的最佳实践 变更是需要多角色合作的 而且他是整体研发流程的一部分 在优维内部 我们坚持每日变更 打通开发环节到最终发布上线的全过程 在保证质量的前提下 尽可能提升
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产
  • 对中国手机作恶的谷歌,印度CEO先后向三星和苹果低头求饶

    日前苹果与谷歌宣布合作 发布了 Find My Device Network 的草案 旨在规范蓝牙追踪器的使用 在以往苹果和谷歌的生态形成鲜明的壁垒 各走各路 如今双方竟然达成合作 发生了什么事 首先是谷歌安卓系统的市场份额显著下滑 数年来
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • 程序猿 C#常规面试题

    1 NET框架是什么 NET框架是Microsoft的软件开发框架 它提供了一个受控的编程环境 可以在基于Windows的操作系统上开发 安装和执行软件 2 NET和C 的区别 NET是一种框架 CLR公共语言运行库是 NET FrameW
  • Avalon 学习系列(四)—— 循环遍历

    Avalon2 的 ms for 绑定集齐了 ms repeat ms each ms with 的所有功能 更加好用 性能也提升了很多 Avalon 不需要 vue 或 react 那样使用 key 属性来提高性能 内部已经帮你搞定了 循
  • 1.1 计算机的发展与应用

    一 计算机的发展 1 计算机的发展 1 计算机的奠基人 艾兰 图灵 4个贡献 图灵机 可计算性理论 人工智能之父 图灵奖 冯 诺依曼 5个贡献 EDVAC 存储程序 现代计算机的基本结构 计算机之父 五部分 2 第一台 首台通用电子计算机
  • readme for esoe tools

    Pack hta Pack hta is a tool of ESOE to pack js files It s also a demo of ESOE It has below features file New Open Saveed
  • L->data 与 L.data比较

    L gt data 与 L data比较 当L是结构体 类的 指针时 用L gt data指明结构体中的变量 面向对象中 类的对象 而当L data则是结构体变量 类的对象 用L data表示
  • docker 容器绑定hosts

    问题 最近有个需求需要在docker容器里进行hosts绑定 尝试了将hosts 写在Dockerfile里 构建出镜像 但是启动容器后绑定的hosts会丢失 而且手动进入容器绑定hosts后 重启容器后hosts也会丢失 原因 简单的说
  • tensorflow的归一化与梯度下降

    代码 coding utf 8 By author MZ import numpy as np from sklearn datasets import load boston import tensorflow as tf from sk
  • Linux下查询比较大的文件命令

    size medium color blue b Linux下查询很大文件的快速命令 b color size find usr sersync type f size 3k color green size medium 这个命令意思是
  • linux backlog,linux下backlog设置 - 就爱阅读网

    当业务有高并发的情况的时候 需要调整backlog 对于PHP而言 需要注意以下3方面 1 操作系统 sysctl 2 web端 nginx 3 php后端 php fpm 操作系统以Ubuntu为例 编辑默认配置文件 etc sysctl
  • C++: 输入二进制以十进制显示

    C 输入二进制以十进制显示 代码展示 代码展示 输入二进制以十进制显示 include
  • regsvr32 /i hhctrl.ocx出现无法注册

    运行 输入regsvr32 i hhctrl ocx出现无法注册hhctrl ocx 无法找到dllinstall输入点 无法注册这个文件 在另一台电脑c windows system32 itss dll拷这个文件过去另一电脑的同一路径
  • C++派生类含有成员对象构造函数析构函数顺序

    参考博客 传送门1 当类中含有对象成员时 类的构造函数要包含对成员对象的初始化 如果构造函数的成员初始化列表没有包含对成员对象的初始化 系统会自动调用成员对象的无参构造函数 顺序上 先调用成员对象的构造函数 当所有的成员对象都执行了自身类的
  • 【目录贴】关于人生、学习的阶段性总结和小窍门(2021及以前)

    关于人生小窍门 自己总结 杂谈 过往时期 知乎 zhihu com 以小见大 杂记过往历程 杂谈 给本科实验室的分享PPT 知乎 zhihu com 一步一步推演出正确的观念 其实就是用来勉励大家学习的一文 杂谈 给本科实验室的分享PPT
  • VS2010默认库“MSVCRTD“,“LIBCMTD与其他库的使用冲突,请使用/NODEFAULTLIB:library

    vs2010 opencv库运行过程中的问题 链接警告 1 gt LINK warning LNK4098 默认库 MSVCRTD 与其他库的使用冲突 请使用 NODEFAULTLIB library 1 gt LINK warning L
  • c3p0数据库连接池自动重连的配置

    在Tomcat中配置c3p0数据库连接池的时候 如果数据库重启 或者网络原因造成服务器和数据库断开连接 Tomcat便再也不能和数据库连接 除非Tomcat服务重启 本人在使用VPN的时候遇到更换IP后数据库连接访问不到 解决办法是在c3p
  • 最新版抖音(20200624)去水印原理及源码,简单的原理与面临的挑战

    1 打开抖音链接 获取下图的这个item id 2 之后使用这个接口请求就ok了 https www iesdouyin com web api v2 aweme iteminfo item ids 6832178122364816644
  • 2023华为笔试机考题库【无向图染色】

    题目描述 给一个无向图染色 可以填红黑两种颜色 必须保证相邻两个节点不能同时为红色 输出有多少种不同的染色方案 输入描述 第一行 输入M 图中节点数 N 边数 后续N行格式为 V1 V2表示一个V1到V2的边 数据范围 1 lt M lt
  • linux内核-系统调用execve()

    读者在linux内核 系统调用fork vfork与clone中已经看到 进程通常是按其父进程的原样复制出来的 在多数情况下 如果复制出来的子进程不能与父进程分道扬镳 走自己的路 那就没多大意义 所以 执行一个新的可执行程序是进程生命历程中
  • GPU-Z

    TechPowerUp GPU Z GPU Z简介 硬件网站TechPowerUp现在又提供了一个类似的工具 用于显卡识别的GPU Z GPU Z是一款显卡测试的比较专业的软件 绿色免安装 界面直观 运行后即可显示GPU核心 以及运行频率
  • HBase(一)——HBase介绍

    HBase介绍 1 关系型数据库与非关系型数据库 1 关系型数据库 关系型数据库最典型的数据机构是表 由二维表及其之间的联系所组成的一个数据组织 优点 1 易于维护 都是使用表结构 格式一致 2 使用方便 SQL语言通用 可用于复杂查询 3