首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HBase最佳实践-性能优化策略

而对于写吞吐量太低以及延迟太大的优化问题,笔者也和很多朋友进行过探讨,这篇文章就以延迟优化为核心内容展开,具体分析HBase进行延迟优化的那些套路,以及这些套路之后的具体原理。...另外,HBase 2.0对offheap的改造(HBASE-11425)将会使HBase性能得到2~4倍的提升,同时GC表现会更好!...优化原理:HBase数据在HDFS中一般都会存储三份,而且优先会通过Short-Circuit Local Read功能尝试本地。...优化建议:避免Region无故迁移,比如关闭自动balance、RS宕机及时拉起并迁回飘走的Region等;在业务低峰期执行major_compact提升数据本地率 HBase性能优化归纳 在本文开始的时候提到延迟较大无非三种常见的表象...HBase性能优化总结 性能优化是任何一个系统都会遇到的话题,每个系统也都有自己的优化方式。 HBase作为分布式KV数据库,优化点又格外不同,更多得融入了分布式特性以及存储系统优化特性。

2.5K60
您找到你想要的搜索结果了吗?
是的
没有找到

HBase 流程解析与优化的最佳实践

二、 HBase 简介 HBase 是一个分布式,可扩展,面向列的适合存储海量数据数据库,其最主要的功能是解决海量数据下的实时随机读写的问题。...通常 HBase 依赖 HDFS 做为底层分布式文件系统,本文以此做前提并展开,详细介绍 HBase 的架构,路径以及优化实践。...至此,我们对 HBase 的关键组件和它的角色以及架构有了一个大体的认识,下面重点介绍下 HBase路径。 三、路径解析 客户端读取数据有两种方式, Get 与 Scan。...4.2.4 高可用 高可用HBase 是一个 CP 系统,同一个 region 同一时刻只有一个 regionserver 提供读写服务,这保证了数据的一致性,即不存在多副本同步的问题。...五、总结 HBase 路径相比写路径更加复杂,本文只是简单介绍了核心思路。

1.2K10

Spark2StreamingKerberos环境的Kafka并写数据HBase

github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了在Kerberos环境下《Spark2StreamingKerberos...环境的Kafka并写数据到Kudu》,本篇文章Fayson主要介绍如何使用Spark2Streaming访问Kerberos环境的Kafka并将接收到的Kafka数据写入HBase,在介绍本篇文章前,你可能需要知道...> (可左右滑动) 具体需要的依赖包,可以参考Fayson前面的文章《Spark2StreamingKerberos环境的Kafka并写数据到Kudu》 2.添加访问HBase的集群配置信息hdfs-site.xml...HBase,若出错关闭table table.close()//分区数据写入HBase后关闭连接 }) connection.close()...2.运行脚本向Kafka的Kafka_hbase_topic生产消息 ? 3.使用hbase shell命令查看数据是否入库成功 ?

2.2K20

HBase原理 | HBase RegionServer宕机数据恢复

HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘。...如果不幸一旦发生RegionServer宕机或者其他异常,这种设计可以从HLog中进行日志回放进行数据补救,保证数据不丢失。HBase故障恢复的最大看点就在于如何通过HLog回放补救丢失数据。...启动一个线程依次顺序读出每个HLog中所有数据对,根据HLogKey所属的Region不同写入不同的内存buffer中,如上图Buffer-Region1内存存放Region1...流程上的改动主要有两点:先重新分配Region,再切分回放HLog;Region重新分配打开之后状态设置为recovering,核心在于recovering状态的Region可以对外提供写服务,不能提供服务...可见,在写可用率以及恢复性能上,DLR要远远优于DLS方案,官方也给出了一个简单的测试报告: 可见,DLR在写可用恢复是最快的,可用恢复稍微弱一点,但都比DLS好很多 了解了DLR的解决方案后,再回头看

2.5K30

HBase数据操作

# HBase数据操作 put delete 数据查询 get scan 数据统计 # put 语法 put '表名','行键','列族:列限定符','单元格值',时间戳 描述 必须指定表名、行键...只能插入单个数据 描述:如果指定的单元格已经存在,则put操作为更新数据; 单元格会保存指定VERSIONS=>n的多个版本数据 # delete 语法 delete '表名','行键','列族...,只有在数据产生合并时,数据才会被删除。...语法 count '表名' hbase(main):004:0> count ‘student’ 3 row(s) in 0.0440 seconds 在关系型数据库中,有多少条记录就有多少行,表中的行数很容易统计...而在 HBase 里,计算逻辑行需要扫描全表的内容,重复的行键是不纳入计数的,且标记为删除的数据也不纳入计数。

1.7K30

HBase数据定义

# HBase数据定义 HBase Shell 数据定义 创建表 表相关操作 查看某个表是否存在 查看当前HBase所有的表名 查看选定表的列族及其参数 修改表结构 删除表 清空数据 # HBase...Shell HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用; [root@localhost bin]# hbase shell HBase Shell; enter...exit 推出hbase shell # 数据定义 命令 描述 create 创建指定模式的新表 alter 修改表的结构,如添加新的列族 describe 展示表结构的信息,包括列族的数量与属性...删除表 truncate 如果只是想删除数据而不是表结构,用truncate来禁用表、删除表并自动重建表结构 # 创建表 语法 create '表名','列族名' 描述 必须指定表名和列族...'delete' => 'f3' 注意 删除列族时,表中至少有两个列族; # 删除表 语法 disable 'teacher' drop ' teacher ' 注意:删除表之前需要先禁用表 # 清空数据

1K20

Hbase-2.0.0_03_Hbase数据模型

1. hbase数据模型 ? 1.1. HBase数据模型术语 Table HBase表由多行组成。...每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。 为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供了两种数据版本回收方式。...HBase版本维度以递减顺序存储,因此在从存储文件中读取数据时,首先找到最近的值。 在HBase中,对于单元版本的语义有很多混淆。...很明显,一旦一个重要的压缩运行,这样的行为将不再是这样了…(参见HBase中弯曲时间的垃圾收集)。 1.10. Sort Order 所有数据模型操作HBase都以排序的顺序返回数据。...有关HBase如何在内部存储数据的更多信息,请参阅keyvalue。 1.12.

1.6K20

HBase 数据读写流程

数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 row key 为 row0001 的用户信息 要想取得这条数据...,就需要先找到含有此条记录的 region HBase 是如何定位到具体 regionserver 中的具体 region 的呢?...HBase 中有一个内置的 hbase:meta 表,其中记录了所有表的所有 region 的详细信息 例如 region 的 开始KEY、结束KEY、所在server的地址…… ?...hbase:meta 表就像一个目录,通过他可以快速定位数据的实际位置 hbase:meta 表是存储在 ZooKeeper 中的,所以客户端就需要先访问 ZooKeeper,获取到 hbase:meta...,从中查询出目标数据是在哪个 regionserver 中的哪个 region 中,然后到 region 中进行读取 ?

2K81

HBase 数据存储结构

在「HBase」中, 从逻辑上来讲数据大概就长这样: 单从图中的逻辑模型来看, HBase 和 MySQL 的区别就是: 将不同的列归属与同一个列族下 支持多版本数据 这看着感觉也没有那么太大的区别呀,...他的数据是如何进行存储的呢? HBase 数据物理结构 在介绍其物理结构之前, 要先简单提一下 LSM 树 LSM树 和 MySQL 所使用的B+树一样, 也是一种磁盘数据的索引结构....在内存中维护一个有序的数据 将内存中的数据push 到磁盘中 将磁盘中的多个有序文件进行归并, 合成一个较大的有序文件 HBase存储 在「HBase」中, 数据的存储就使用了 「LSM 树」进行存储....其中每一条数据都是一条操作记录. 那么在「HBase」实现中的部分内容如下...., 加速读取 根据数据块的位置和大小, 找到指定数据块并二分查找指定数据 HBase 数据列族式存储 先简单回顾一下行式存储和列式存储.

2.6K20

hbase数据清理 原

Done. 0 row(s) in 1.2570 seconds hbase(main):023:0> enable 'SVNCHECKOUTTBL_UPT' 0 row(s) in 4.5620 seconds...hbase(main):024:0> hbase(main):026:0> major_compact('SVNCHECKOUTTBL_UPT') 0 row(s) in 0.1920 seconds...上面是基本的操作,如果你的表已经很满,满到几乎快把hadoop撑爆的时候,上面的方法是慢慢删除的方法,下面是具体的解释: ttl是hbase中表数据的过期时间,一个列族可以对应一个ttl值 habse...中数据删除不是立刻执行的,类似软删除,当你标识数据为删除状态之后,hbase会在大版本合并的时候去真正的处理hadoop上的文件,进而释放磁盘空间, 另外注意一点,在修改表的ttl值的时候,一般需要先disable.../bin/sh exec /usr/local/code_hbase/hbase/bin/hbase shell <<EOF major_compact('TABLE') EOF

2.1K30

Hbase数据

海量数据存储解决方案:Hbase数据库解析 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统...就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。...HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。...HBase的应用场景及特点 交通 金融 电商 移动(电话信息)等 Hbase表结构与架构详解 介绍:基于HDFS,面向列,nosql 基于HDFS: HDFS:hadoop distributed...Hbase数据库的操作 shell命令行: list:列出所欲表 create “表名”,“列族”,“多个列族” put “表名”,“行键”,“列族:列”,“值” get “表名”,“行键”

1.7K20

误删HBase数据如何抢救?

数据保护 当误删数据发生时候,不管三七二十一,第一要务是进入hbase shell,执行如下命令: ?...这里有必要解释一下HBase清理数据的原理: 首先HBase是一个LSM架构,不断发生着数据文件的写入和合并 当删除操作发生时,不会去清理数据文件中的数据,而是写入一个删除标记到新文件中。...我们来看一个简单的例子,还是以hbase shell为例子: 1.首先我们准备几行数据 ? 2.然后我们删掉y开头掉数据 ? 3.查一下,现在只有3行了 ?...其他 上文使用的是hbase shell演示,你可以使用任何语言的API完成上面的操作。...如果你使用的是云HBase,即便因为major compaction物理删除了数据,只要你开启了备份功能,依然可以恢复。

1.7K40

2021年大数据HBase(一):HBase基本简介

HBase基本简介 一、HBase产生的背景介绍 从 1970 年开始,大多数的公司数据存储和维护使用的是关系型数据库 大数据技术出现后,很多拥有海量数据的公司开始选择像Hadoop的方式来存储海量数据...,泛指一个数据库并不是使用SQL作为主要语言的非关系型数据HBase是BigTable的开源java版本。...Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务),从技术上来说,HBase更像是一个「数据 存储」而不是「数据库」,因为HBase缺少RDBMS中的许多特性,例如带类型的列...4、时空数据 ◼ 主要是轨迹, 气象网格之类, 滴滴打车的轨迹数据主要存在Hbase之中, 另外在所有大一点的数据量的车联网企业, 数据也是存储在HBase 5、CubeDb OLAP...四、HBase的发展历程 五、HBase的特点 强一致性/写: HBASE不是“最终一致的”数据存储 , 它非常适合于诸如高速计数器聚合等任务 自动分块: HBase表通过Region分布在集群上

1.7K40

2021年大数据HBase(三):HBase数据模型!!!【建议收藏】

HBase数据模型 在HBASE中,数据存储在具有行和列的表中。...这是看起来关系数据库(RDBMS)一样,但将HBASE表看成是多个维 度的Map结构更容易理解 术语: 表(Table) : HBase数据都是以表形式来组织的, HBase中的表由多个行组成..., 但在列族中不存储任何内容 所有的列族的数据全部都存储在一块(文件系统HDFS) Hbase官方建议所有的列族保持一样的列, 并且将同一类的列放在一个列族中 列标识符(Column Qualifier...,包含一个值和一个时间戳, 数据以二进制存储 版本号(verson num): 每条数据都会有版本号的概念 每条数据都可以有多个版本号, 默认值为系统时间戳, 类型为Long 时间戳(timeStamp...): 每个数据都会有时间戳的概念 在向Hbase插入更新数据的时候, HBase默认会将当前操作的时间记录下来, 当然也可以人为指定时间 不同版本的数据按照时间倒序排序, 即最新的数据排在最前面 -

1.1K20
领券