HBase笔记-1.基本介绍

2023-11-08

HBase简介

  •  HBase-Hadoop Database,是一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
  •  利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用zookeeper作为其分布式协同服务。
  •  主要用来存储结构化和半结构化的数据(列存NOSQL数据库)

 HBase数据模型

 ROWKEY

  •  决定一行数据
  •  按照字典顺序排序
  •  ROWKEY只能存储64k的字节数据

Column Family列族和qualifier列

  •  HBase中的每个列都归属于某个列,列族必须作为表模式(schema)定义的一部分预先给出。如create 'test','course';
  •  列名以列族作为前缀,每个列族都可以以有多个列成员(column);course:math,course:english,新的列族成员(列)可以随后按需动态加入。
  •  权限控制、存储以及调优都是在列族层面进行的。
  •  HBase把同一列族里的数据放在同一个目录下,有几个文件保存。

Timestamp时间戳

  •  在HBase中每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。
  •  时间戳是64整型
  •  时间戳可以由HBase赋值,此时时间戳是精确到毫秒的当前系统时间。
  •  时间戳也可以由客户显式赋值,如果应用程序要避免版本冲突,就必须自己生成具有唯一的时间戳。

cell单元格

  •  由行和列的坐标交叉决定
  •  单元格都是有版本的
  •  单元格的内容都是未解析的字节数组
  •  由{ rowkey  ,  column(=<family>+<qualifier>)  ,  version} 唯一确定的单元格。

HLog

  •  hbase在写入数据之前会先写入MemStore,成功了再写入HLog,当MemStore的数据丢失的时候,还可以用HLog的数据来进行恢复
  •  HLogKey的五要素,region、tableName、log的顺序、写入时间戳、集群id

HBase体系架构

Client

 包含访问HBase的接口并维护cache来加快HBase的访问

Zookeeper

 

  •  保证任何时候,集群中只有一个master
  •  存储所有region的寻址入口
  •  实时监控regionserver的上线和下线信息。并实时通知Master
  •  存储HBase的schema和table的元数据

HMaster

 

  •  管理HRegionServer,实现其负载均衡。
  •  管理和分配HRegion,比如在HRegion split时分配新的HRegion;在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。
  •  实现DDL操作(Data Definition Language,namespace和table的增删改,column familiy的增删改等)。
  •  管理namespace和table的元数据(实际存储在HDFS上)。
  •  权限控制(ACL)。

HRegionServer

 

  •  存放和管理本地HRegion。
  •  读写HDFS,管理Table中的数据。
  •  Client直接通过HRegionServer读写数据(从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后)。
  •  负责切分在运行过程中变得过大的region

HRegion

 

  •  HBase使用RowKey将表水平切割成多个HRegion,从HMaster的角度,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。
  •  HRegion由HMaster分配到相应的HRegionServer中,然后由HRegionServer负责HRegion的启动和管理,和Client的通信,负责数据的读(使用HDFS)。每个HRegionServer可以同时管理1000个左右的HRegion

Memstore与soterFile(HFile)

 

  •  一个regoin由多个store组成,一个store对应一个CF(columnfamily)
  •  store包括内存中的memstore和位于磁盘中的storefile,写操作先写进memstore,当memstore中的数据达到某个阀值,HRegionserver会启动flashcache进程写入到storefile,每次写入形成一个单独的storefile。
  •  当storefile数量到达一定阀值后,系统会进行合并,在合并过程中会进行版本合并和删除工作,形成更大的storefile
  •  当Region所有storefile的大小和超过一定的阀值后,会把当前的Region分割位两个,并有HMaster分配到相应的Regionserver服务器中,实现负责均衡。
  •  客户端检索数据先在memstore中找,再到storefile中找。

 


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

HBase笔记-1.基本介绍 的相关文章

  • 大文件上传并进行md5校验过程中遇到的问题,复制InputStream导致内存溢出

    最近因为一个项目需求 需要支持上传文件 并且在上传的过程中通过流式的方式生成md5校验码 然后好需要利用这个输入流来生成本地预览文件 而InputStrream是只能读一次的 并不能重复读 所以在这里就需要进行流的复制 解释一下 fileU
  • linux环境搭建nacos集群详解

    目录 一 集群部署说明 二 环境准备 三 搭建Nacos集群 四 调整Nginx的配置 五 测试访问 一 集群部署说明 官网集群部署 https nacos io zh cn docs cluster mode quick start ht
  • 使用Python,OpenCV进行按位AND、OR、XOR和NOT

    使用Python OpenCV进行按位AND OR XOR和NOT 1 效果图 2 源码 参考 这篇博客将介绍如何使用OpenCV应用按位AND OR XOR和NOT 上一篇学习了如何从图像中裁剪和提取感兴趣的区域 ROI 截取的都是矩形
  • keil GD32编译过程中出现“No space in execution regions with .ANY selector matching”问题

    用keil GD32官方的例程基础上移植了自己的测试demo 编译验证成功 然后开始移植FreeRTOS 移植完就遇到了这个问题 网上找到一篇文章 说是keil模拟的芯片内存远小于实际芯片内存 因为每个人遇到的情况可能都不太一样 我自己的k
  • python Tkinter使用与美化

    Tkinter使用 自定义窗体 import tkinter root tkinter Tk 自定义窗体的标题 root title 我的第一个窗口 自定义窗体的图标 注意 这里的图标只能是ico结尾的图标文件 需自己事先创建图标 括号中写
  • Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号...

    如何开启MySQL的远程帐号 1 首先以 root 帐户登陆 MySQL 在 Windows 主机中点击开始菜单 运行 输入 cmd 进入控制台 然后cd 进入MySQL 的 bin 目录下 然后输入下面的命令 gt MySQL uroot
  • Linux 中线程的实现

    文章目录 一 线程的概念 二 线程的实现方式 三 线程库中的接口介绍 四 线程的简单使用 4 1 主函数创建一个线程 4 2 主函数创建多个线程 4 3 多进程对一个变量进行操作 五 线程安全 六 线程创建 6 1 创建进程上限 6 2 线
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:81-100)

    第81题 关于结构化的网络故障排除流程中的确认故障阶段的描述 正确的是 A 应关注如何更好的解决故障而不论该故障是否属于自己的负责范围 B 应重视用户的意见 以用户的判断为依据来判断故障问题 C 应使影响最小化 尽量不让其他人知道网络出现了
  • jmeter基础操作,图文

    jmeter基础操作 1 jmeter环境搭建 jmeter是用Java开发的 依赖jdk jer所以jdk的版本使用1 8版本 1 安装JDK环境 配置环境变量 2 官网下载jmeter下载需要的版本包 3 下载完成后 在bin文件夹下
  • 使用VSCode内置终端执行python脚本时出现OMP: Error #15错误

    本问题出现的必要条件 Windows11 21H2 使用VSCode内置终端执行脚本 且通过编辑器右键的 在终端中运行python文件 选项启动终端 脚本中调用了matplot包 VSCode和Powershell都针对Conda进行了配置
  • layui笔记之树形结构

    div ul class easyui tree ul div div class easyui menu style width 120px div 添加 div div
  • 【registry】 javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;

    1 背景 在 registries registrie rest service idea 无法引入的背景下 以及 registry NoSuchFieldError INCLUDE ALL 以及 解决依赖问题报错 javax el Exp
  • 小程序开发----自定义有效期缓存

    在uni app中使用 缓存数据优化 import cache from common js cache 使用方法 一 设置缓存 string cache put k string你好啊 json cache put k b 3 2 arr
  • 从tensorboard导出数据,自己用python画折线图

    有大佬有更好的方法 请狠狠踢我 我很爱学习的 写论文时 我们可能需要这样的 但是tensorboard展示的是这样的 虽然tensorboard可以导出svg 但是使用visio去除不了背景 同门亲手验证的 办法就是从tensorboard
  • CSAPP:DataLab详细解析

    做题的时候看了好多博客 一点一点更深入的了解 学习 不得不说lab真的很好 学到很多 做题准备我已经在上一个博客提到了 建议写之前看一下README 1 bitXor 运用 和 实现x y 这里可以用一个真值表 x y x y 0 0 0
  • char*的变量不可直接==“字符串”

    char 的变量不可直接 字符串 需要使用strcmp a b
  • less命令乱码_less命令

    less命令乱码 The less command is one I use a lot It shows you the content stored inside a file in a nice and interactive UI
  • PCL 法向量夹角约束的欧式聚类分割

    目录 一 概述 二 代码实现 三 结果展示 一 概述 目前广为流传的欧式聚类都是 PCL 欧式聚类分割一文中的实现方式 但是 完整版的点云欧式聚类算法是可以附带法向量夹角约束的 具体使用方法见本文 二 代码实现 include

随机推荐

  • PS图层混合算法之六(差值,溶解, 排除)

    差值模式 查看每个通道中的颜色信息 比较底色和绘图色 用较亮的像素点的像素值减去较暗的像素点的像素值 与白色混合将使底色反相 与黑色混合则不产生变化 排除模式可生成和差值模式相似的效果 但比差值模式生成的颜色对比度较小 因而颜色较柔和 与白
  • 冻结训练的理解与使用

    冻结训练的作用 当我们已有部分预训练权重 这部分预训练权重所应用的那部分网络是通用的 如骨干网络 那么我们可以先冻结这部分权重的训练 将更多的资源放在训练后面部分的网络参数 这样使得时间和资源利用都能得到很大改善 然后后面的网络参数训练一段
  • 虚拟化技术的工作原理_虚拟化技术与原理简介

    随着云计算技术的发展及其应用的普及和深入 云平台资源的高效利用成为越来越重要的问题 而服务器虚拟化技术是云计算实现资源有效利用的关键技术 云计算的云端系统 其实质上就是一个大型的分布式系统 虚拟化通过在一个物理平台上虚拟出更多的虚拟平台 而
  • LayUI导入Excel表(Apache POI)

    LayUI导入Excel表 Apache POI 前端框架LayUI 将excel表导入到数据库 并展示在页面 首先要明白 excel表整体构造 一整个 excel表是一个工作簿 workbook 而其中又有很多工作表 sheet 然后一行
  • QT C++ 欧姆龙PLC网络通信协议FinsTcp库 通信慢的问题

    这个库移植自我自己以前的C 欧姆龙PLC网络通信协议FinsTcp库 详见以下链接 https blog csdn net panasonicsony article details 126300935 QT主界面上一个写入PLC辅助触点的
  • struts2 开发中,一些功能需要在struts.xml中的配置

    1 普通package
  • Spring Boot启动时自动执行方法

    摘要 有时启动springboot项目后需要执行一些方法初始化 如资源加载 数据准备等 首先不能放在main方法中SpringApplication run 之前 因为此时bean还未初始化 除非你不使用bean 当然也不能放其后 因为ru
  • 【MySql安装】msi版本

    提示 不是压缩版安装 是msi直装的 目录 前言 一 到官网下载msi版 二 安装 1 安装MySql数据库 2 查看服务启动 总结 前言 什么是msi呢 很多新手对此不是很清楚 mysql msi 为安装版本 安装过程中将自动配置 包含安
  • 【python】生成随机数字/字母/指定位数的字母+数字的字符串

    在利用python代码进行开发或者测试中 难免会遇到一些需要输入随机值的相关操作 这里特意总结了一下 一 随机数字的生成 1 生成0 9 或其他数字段 中的一个 串 随机数字 import random def create random
  • 内网穿透(详细且免费)部署

    内网穿透 详细且免费 100 成功 我们在做开发时 不想购买服务器 只想搭建我们本地的服务器 我们搭建的本地服务器只能供我们自己电脑的浏览器访问 或者处于同一个wifi下的手机访问平常我们访问的网站都是由具有公网ip的服务器提供的 如果想做
  • 002-实现Unity3d中触摸屏幕控制物体的旋转和缩放 代码实现

    1 直接帮到物体的身上就可以了 using UnityEngine using System Collections using System IO public class hehe MonoBehaviour private Touch
  • 日撸 Java 三百行(01-10天,基本语法)

    目录 总述 01 10天 基本语法 11 20天 线性数据结构 21 30天 树与二叉树 31 40天 图 41 50天 查找与排序 51 60天 kNN 与 NB 61 70天 决策树与集成学习 71 80天 BP 神经网络 81 90天
  • 华为手机大疆云台自动跟随_大疆Osmo Mobile 3 我的第一支手机云台

    手机逐渐取代相机 成为人们旅行的主要记录工具 视频的普及让我们的旅行记录更完美 但是手机拍的 地震 视频通常让我们觉得很糟心 于是手机云台诞生了 大疆Osmo Mobile 3 我的第一支手机云台 作为在稳定器方面十分有建树的大疆 前不久推
  • Python爬虫之bs4数据解析select方法

    select作用如其名 筛选 通过指定的类 标签 id 层级查找 1 通过类查找 from bs4 import BeautifulSoup soup select class名称 2 通过ID查找 soup select id名称 3 通
  • torch.nn.LocalResponseNorm(局部响应归一化)详解(附源码解析)

    torch nn LocalResponseNorm 局部响应归一化的理解 局部归一化的动机 在神经生物学有一个概念叫做侧抑制 lateral inhibitio 指的是被激活的神经元抑制相邻神经元 归一化的目的是 抑制 局部响应归一化就是
  • 在运行中修改unity的animator中某个状态的速度

    要在运行中修改动画播放速度的话不能用UnityEditor 只能修改animator的速度 不能修改animator里某个状态的速度 运行中修改animator的速度不会保存 但是运行中修改animator里某个状态的速度则会保存下来 这大
  • js判断是否是base64字符串

    js判断是否是base64字符串 isBase64 str if str str trim return false try return btoa atob str str catch err return false
  • 多元线性回归——梯度下降法、sklearn实现

    梯度下降法实现多元线性回归 代码实现 载入数据 data genfromtxt r Delivery csv delimiter 观察一下数据 x data为特征值 y data为标签值 所以应该设置3个参数 0 1 2 lr 0 0001
  • opencv实战—目标跟踪-KCF目标跟踪方法

    一 函数 1 vars vars 函数返回对象object的属性和属性值的字典对象 2 tracker cv2 multiTracker create 获得追踪的初始化结果 3 continue 语句跳出本次循环 而break跳出整个循环
  • HBase笔记-1.基本介绍

    HBase简介 HBase Hadoop Database 是一个提供高可靠性 高性能 列存储 可伸缩 实时读写的数据库系统 利用Hadoop HDFS作为其文件存储系统 利用Hadoop MapReduce来处理HBase中的海量数据 利