HBase深入学习(2)

Hbase 学习第2天:Phoenix 集成 HBase 一 、Phoenix 介绍 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询. Phoenix 是 java 语言编写的,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API... 阅读详情

HBase读的实现

通过前文的描述,我们知道在Hbase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起,甚至删除一个Cell也只是写入一个新的Cell,它含有Delete标记,而不一定将一个Cell真正删除了,因而这就引起了一个问题,如何实现读的问题?要解决这个问题,我们先来分析一下相同的Cell可能存在的位置:首先对新写入的Cell,它会存在于MemStore中;然后对之前已经Flush到HDFS中的Cell,它会存在于某个或某些StoreFile(HFile)中;最后,对刚读取过的Cell,它可能存在于BlockCache中。既然相同的Cell可能存储在三个地方,在读取的时候只需要扫瞄这三个地方,然后将结果合并即可(Merge Read),在hbase中扫瞄的顺序依次是:BlockCache、MemStore、StoreFile(HFile)。其中StoreFile的扫瞄先会使用Bloom Filter过滤那些不可能符合条件的HFile,然后使用Block Index快速定位Cell,并将其加载到BlockCache中,然后从BlockCache中读取。我们知道一个HStore可能存在多个StoreFile(HFile),此时需要扫瞄多个HFile,如果HFile过多又是会引起性能问题。

Compaction

MemStore每次Flush会创建新的HFile,而过多的HFile会引起读的性能问题,那么如何解决这个问题呢?HBase采用Compaction机制来解决这个问题,有点类似Java中的GC机制,起初Java不停的申请内存而不释放,增加性能,然而天下没有免费的午餐,最终我们还是要在某个条件下去收集垃圾,很多时候需要Stop-The-World,这种Stop-The-World有些时候也会引起很大的问题,比如参考本人写的这篇文章,因而设计是一种权衡,没有完美的。还是类似Java中的GC,在HBase中Compaction分为两种:Minor Compaction和Major Compaction。

  • Minor Compaction是指选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile,在这个过程中不会处理已经Deleted或Expired的Cell。一次Minor Compaction的结果是更少并且更大的StoreFile。
  • Major Compaction是指将所有的StoreFile合并成一个StoreFile,在这个过程中,标记为Deleted的Cell会被删除,而那些已经Expired的Cell会被丢弃,那些已经超过最多版本数的Cell会被丢弃。一次Major Compaction的结果是一个HStore只有一个StoreFile存在。Major Compaction可以手动或自动触发,然而由于它会引起很多的IO操作而引起性能问题,因而它一般会被安排在周末、凌晨等集群比较闲的时间。

更形象一点,如下面两张图分别表示Minor Compaction和Major Compaction。

 

HRegion Split

最初,一个Table只有一个HRegion,随着数据写入增加,如果一个HRegion到达一定的大小,就需要Split成两个HRegion,这个大小由hbase.hregion.max.filesize指定,默认为10GB。当split时,两个新的HRegion会在同一个HRegionServer中创建,它们各自包含父HRegion一半的数据,当Split完成后,父HRegion会下线,而新的两个子HRegion会向HMaster注册上线,处于负载均衡的考虑,这两个新的HRegion可能会被HMaster分配到其他的HRegionServer中。关于Split的详细信息,可以参考这篇文章:《Apache HBase Region Splitting and Merging》。

 

HRegion负载均衡

在HRegion Split后,两个新的HRegion最初会和之前的父HRegion在相同的HRegionServer上,出于负载均衡的考虑,HMaster可能会将其中的一个甚至两个重新分配的其他的HRegionServer中,此时会引起有些HRegionServer处理的数据在其他节点上,直到下一次Major Compaction将数据从远端的节点移动到本地节点。

HRegionServer Recovery

当一台HRegionServer宕机时,由于它不再发送Heartbeat给ZooKeeper而被监测到,此时ZooKeeper会通知HMaster,HMaster会检测到哪台HRegionServer宕机,它将宕机的HRegionServer中的HRegion重新分配给其他的HRegionServer,同时HMaster会把宕机的HRegionServer相关的WAL拆分分配给相应的HRegionServer(将拆分出的WAL文件写入对应的目的HRegionServer的WAL目录中,并并写入对应的DataNode中),从而这些HRegionServer可以Replay分到的WAL来重建MemStore。

HBase架构简单总结

在NoSQL中,存在著名的CAP理论,即Consistency、Availability、Partition Tolerance不可全得,目前市场上基本上的NoSQL都采用Partition Tolerance以实现数据得水平扩展,来处理Relational DataBase遇到的无法处理数据量太大的问题,或引起的性能问题。因而只有剩下C和A可以选择。HBase在两者之间选择了Consistency,然后使用多个HMaster以及支持HRegionServer的failure监控、ZooKeeper引入作为协调者等各种手段来解决Availability问题,然而当网络的Split-Brain(Network Partition)发生时,它还是无法完全解决Availability的问题。从这个角度上,Cassandra选择了A,即它在网络Split-Brain时还是能正常写,而使用其他技术来解决Consistency的问题,如读的时候触发Consistency判断和处理。这是设计上的限制。

从实现上的优点:

  • HBase采用强一致性模型,在一个写返回后,保证所有的读都读到相同的数据。
  • 通过HRegion动态Split和Merge实现自动扩展,并使用HDFS提供的多个数据备份功能,实现高可用性。
  • 采用HRegionServer和DataNode运行在相同的服务器上实现数据的本地化,提升读写性能,并减少网络压力。
  • 内建HRegionServer的宕机自动恢复。采用WAL来Replay还未持久化到HDFS的数据。
  • 可以无缝的和Hadoop/MapReduce集成。

实现上的缺点:

  • WAL的Replay过程可能会很慢。
  • 灾难恢复比较复杂,也会比较慢。
  • Major Compaction会引起IO Storm

转载出处:http://blog.jobbole.com/91916/

CIFAR-100模型性能对比:Top1与Top5错误率深度解析 本文深度解析了CIFAR-100数据集上Top1与Top5错误率的核心意义与差异。通过对比MobileNet、ResNet、DenseNet等主流模型的性能数据,揭示了模型架构、训练策略及数据集特性如何共同影响这两个关键指标,并为不同应用场景下的模型选择提供了实战指南。 阅读详情

相关推荐

单细胞测序数据读取实战指南:从入门到精通

本文提供了单细胞测序数据读取的实战指南,涵盖从标准10X Genomics格式到通用表达矩阵及RDS文件的读取方法。文章重点解析了数据读取的核心步骤、常见问题解决方案及进阶技巧,旨在帮助用户夯实数据分析基础,确保后续分析流程的准确性。

weixin_29095587的博客 460

HBase Cell Tag介绍

HBase cell tag介绍

weixin_43666570的博客 1388

基于FaceX-Zoo实现的Face Mask Adding人脸戴口罩

人脸系列文章目录 文章目录人脸系列文章目录前言一、加口罩效果二、实现原理二、代码实现 前言 目前人脸加口罩均为在人脸位置贴图式的,非常不真实。前段时间京东开源一个基于PRnet实现的3D口罩拟合人脸,加口罩非常逼真,但是只是单独一个加口罩demo,没有完整的流程。于是本人结合人脸检测,关键点对齐。PRnet加口罩实现一个完整的加口罩流程。只需一个命令简单方便调用,实现人脸加口罩。 https://github.com/JDAI-CV/FaceX-Zoo 一、加口罩效果 下图可以看出效果还是非常逼真的

zengwb的博客 3390

HBase 相关知识

HBase总结(九)Bloom Filter概念和原理 https://blog.youkuaiyun.com/lifuxiangcaohui/article/details/39991781

qq_38363255的博客 775

量子计算入门指南:密度算符的核心概念与应用解析

本文深入解析了量子计算中密度算符的核心概念与应用。作为描述量子系统“状态的状态”的关键数学工具,密度算符能有效处理混合态与子系统描述,是理解量子噪声、量子纠错和开放系统演化的基石。文章通过对比纯态与混合态,阐释了密度矩阵的数学定义与物理意义,并结合代码示例演示了其在实际量子计算问题中的强大威力。

day7的博客 469

操作系统知识点汇总(王道)

操作系统不论是就业还是升学都是核心的一门课程,对于大部分工科更是必修课程。本文章是对《王道操作系统》所有知识点的总结笔记,以供大家学习以及在备考期间复习使用。让我们一起把知识往脑子里旋好吗!!!......

S mile0804的博客 5万+

深入 HBase 架构解析(2)

http://blog.jobbole.com/91916/ 原文出处: DLevin(@雪地脚印_)   欢迎分享原创到伯乐头条 前言 这是《深入HBase架构解析(1)》的续,不多废话,继续。。。。   HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起

onlyForCloud的专栏 850

画个板子玩一玩STM32F030F4P6,也许是最便宜的32bit MCU

前言,什么是STM32F030F4P6 STM32目前最便宜的芯片之一应该就是这一块,STM32F030F4P6,这一个芯片没有USB,但是其他都有,引脚少,价格低廉,如果找不到原厂,可以买替代的国产芯片,性能也一样。 不管怎么样也是Cortex-M0,比8bit和16bit的性能都强,总的来说就是低价,引脚少,体积小的同时,还容易开发,有很多模拟输入可玩,还有SPI,硬件I2C等等 所以,这一款MCU真的是从理论来说又便宜又好用,非常适合把玩。 画个板,最小系统 STM32F030其..

arenascat的博客 2万+

HBase--cell的结构

HBase中通过row和columns确定的为一个存贮单元称为cell。cell 中的数据是没有类型的,全部是字节码形式存贮。

weixin_59295776的博客 556

从零到一:Mx_yolo本地训练与K210部署实战指南

本文详细介绍了从零开始进行Mx_yolo本地模型训练到K210部署的全流程实战指南。涵盖环境配置、数据准备、模型训练与调优、模型转换及K210部署等关键步骤,并提供了常见问题解决方案和性能优化技巧,帮助开发者高效完成AI模型在嵌入式设备的落地应用。

weixin_29081163的博客 252

【OpenFOAM】-olaFlow-算例4- irreg45degTank

不规则波浪模拟

ou_no的博客 2117

HBASE

大数据面试-hbase

今天敲代码了嘛? 528

Pytorch实现之SRGAN+CBAM的结构设计

在SRGAN的残差连接中加入了CBAM注意力机制,同时设计了四类损失来训练。

LJ1147517021的博客 569

hbase 修改表名_HBase学习——2.HBase原理

1.系统架构1.1 图解 从HBase的架构图上可以看出,HBase中的组件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog。1.2 clientHBase 有两张特殊表: 1)...

weixin_39915605的博客 281

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HBase学习 -安装Hbase(2)

目录: 安装模式 独立式HBase安装 (使用自带的Zookeeper) 独立于HDFS的HBase安装 (使用自带的Zookeeper) 伪分布式HBase安装 (使用自带的Zookeeper) 伪分布式HBase安装 (不使用自带的Zookeeper) 完全分布式安装 ...

yiguang_820的博客 683

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

HBase2.x学习笔记

文章目录一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HDFS二、HBase 快速入门1、HBase 安装部署1.1 前置环境与下载1.2 HBase 的配置文件1.

Shawn的个人博客 1865

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hbase学习2

HBase 基本概念      1、region            region 是部分数据,所以是所有数据的一个自己,但region包括完整的行,所以region 是行为单位 表的一个子集。           每个region 有三个主要要素: 它所属于哪张表它所包含的的第一行(第一个region 没有首行)他所包含的最后一行(末一个region 没有末行)

何成俭的博客 430

HBase学习笔记(2)—— hbase 原理

转载至:https://blog.youkuaiyun.com/u012292754/article/details/82745599 1 体系图 1.1 写数据流程 client向hregionserver发送写请求。 hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。 hregionserver将数据写到内存(memstore) 反馈client写...

weixin_43570155的博客 208

hbase 二进制数据写入_HBase学习——2.HBase原理

1.系统架构1.1 图解 从HBase的架构图上可以看出,HBase中的组件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog。1.2 clientHBase 有两张特殊表: 1)...

weixin_30927801的博客 343

Hbase学习2:部署

http://dblab.xmu.edu.cn/blog/install-hbase/ HBASE 官网:https://hbase.apache.org/book.html#_preface Use the following legend to interpret this table: Hadoop version support matrix

hzp666的博客 188

HBase学习笔记(2)—— HBase Java API

1 添加依赖 <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.2.0-cdh5.7.0</versio...

一角残叶的博客 468

Hbase2.2.2安装配置以及学习教程

1.Hbase2.2.2安装教程 HBase2.2.2安装和编程实践指南_厦大数据库实验室博客 (xmu.edu.cn)(单机,伪分布式) 分布式HBase-2.2.0安装_zhi_zixing的博客-优快云博客_hbase2 安装(分布式) 建议对比安装 2.出现的问题: 1)hbase安装配置及解决错误: 找不到或无法加载主类 HBase 2.2.2首次安装启动出现 Error: Could not find or load main class org.apache.hadoop.hba

weixin_51181574的博客 710

2. HBase中文学习手册之如何运行一个单机版的HBase?

本文将会继续分享如何运行一个单机版的 HBase,我们将会通过shell创建一个表,插入一行,然后删除它,最后停止HBase。

极客星云-优快云博客 899

Hbase的学习笔记(2)

Hbase的学习笔记(2) ​ 在Hbase的学习笔记(1)中 主要是对Hbase相关的理论知识简单说了一点。在Hbase的学习笔记(2)中 主要是学习Hbase简单的增删改查命令。 Hbase的基础shell命令操作 1. 进入Hbase shell命令行窗口 连接虚拟机进入shell命令模式,在bin目录下执行: ./hbse shell 或者,直接输入bin的路径配合shell命令使用,比如我的hbase的bin目录存放的路径为 /usr/hdp/current/hbase-client/bin,那

weixin_45866849的博客 1729

Hbase2.4.9学习

HBase是一个分布式的、基于列存储的开源的非关系型数据库。它是一个适合于非结构化数据存储的数据库。Hbase的数据存储依赖HDFS。本文主要是简单的浅显的记录了Hbase的一些理论性知识。 一、概述 HBase是一个分布式的、基于列存储的开源的非关系型数据库。它是一个适合于非结构化数据存储的数据库。Hbase的数据存储依赖HDFS。 二、Hbase表结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdMaGztx-1649865423511)(/home/huanz.

qq_22610595的博客 2769

HBase学习笔记(2)

1.文件格式 tsv格式的文件,字段之间是以\t分割的 csv格式的文件,字段之间是以,分割的。 2.查看HBase执行MapReduce所依赖的Jar包 bin/hbase mapredcp $ export HBASE_HOME=/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/ $ export HADOOP_HOME=/opt/modules/cdh/h...

磨刀大神的博客 311
上一篇: HBase深入学习(1)
下一篇: HBase数据库检索性能优化策略
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值