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

玩转HBase百亿级数据扫描

凌晨也是离线任务的髙峰期,这个拉取数据的任务消耗了大量集群资源,这不但影响了hbase的作业,也影响了集群其他任务的运行。...假如scan是全表扫描,那这张表有多少region,就会将这个 scan分解成多个sub-scan,每个sub-scan的startkey和stopkey就是region的startkey和stopkey...这些请求就造成了本文开头叙述的 影响集群稳定,影响hbase的读写和集群中其他任务的执行。...经过测试,新的任务解决了HBaseStorageHandler带来的性能问题,对hbase regionserver完全没有任何压力,并且任务执行时间缩短了一半,相 比之前,资源利用率降低,集群的稳定性也得到了提升...原理图如下: 这样做的好处是减小对RegionServer的影响。SnapshotScanMR这种绕过RegionServer的实现方式最大限度的减小了对集群中其他业务的影响。极大的提升了扫描效率。

2.1K40

Hbase优化

本文对hbase集群进行优化,主要涵盖硬件和操作系统,网络通信,JVM,查询,写入,核心服务,配置参数,zookeeper,表设计等多方面。...我们对hbase的应用主要是用户画像,根据自身使用场景做一些优化。难免有片面之处。 一、软硬件优化: 1....网络通信 由于hdfs对集群网络吞吐有很高的要求,所以网络必须保证低延迟高吞吐 添加机架感知:机架感知是提升hadoop的写入和读取本地化。...如果批量进行全表扫描请禁用块缓存,因为全表扫描每条记录只读取一遍 d. 优化行键查询:全表scan时,如果只需要行键,可以使用过滤器来减少服务器返回的数据量。 e....关闭mapreduce的预测执行功能:若使用mapreduce来访问hbase集群应该关闭,否则有可能导致hbase客户端链接数陡增影响集群运行 8.

1.4K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HBase RowKey与索引设计 |「Hbase2.0常见问题性优化小总结续集」

    二是缓存MemStore缓存部分数据到内存中,如果RowKey字段过长,内存的有效利用率会降低,系统无法缓存更多的数据,降低检索效率。...你可能要运行一个作业在一个时间区间上做聚合计算,如果对时间延迟不敏感,可以考虑跨多个region做并行扫描来完成任务。但问题是,应该如何把数据分散在多个region上呢?...散列:如果你愿意在行健里放弃时间戳信息(每次你做什么事情都要扫描全表,或者每次要读数据时你都知道精确的键,这些情况下也是可行的),使用原始数据的散列值作为行健是一种可能的解决方案: hash('TheRealMT...让我们考虑之前的时间序列数据例子。假设你在读取时知道时间范围,但不想做全表扫描。对时间戳做散列运算然后把散列值作为行健的做法需要做全表扫描,这是很低效的,尤其是在你有办法限制扫描范围的时候。...主要有优化点包括: 对企业的索引集群面向的业务场景和模式定制,对通用数据模型进行抽象和平台话复用; 需要针对多业务、多项目场景进行ES集群资源的合理划分和运维管理; 查询需要针对多索引集群、跨集群查询进行优化

    1.8K20

    上帝视角Hbase二级索引方案全解析

    HBase本身只提供基于行键和全表扫描的查询,而行键索引单一,对于多维度的查询困难。 二级索引的本质就是建立各列值与行键之间的映射关系。...协处理器执行一段Server端代码,并将Server端代码的结果返回给客户端进一步处理,最常见的用法就是进行聚集操作; 如果没有协处理器,当用户需要找出一张表中的最大数据,即max 聚合操作,就必须进行全表扫描...EndPoint 的工作原理 总体来看 Observer允许集群在正常的客户端操作过程中可以有不同的行为表现 Endpoint允许扩展集群的能力,对客户端应用开放新的运算命令 Observer类似于 RDBMS...缺点: 但是Coprocessor的方案入侵性比较强, 增加了在Regionserver内部需要运行和维护二级索引关系表的代码逻辑等, 对Regionserver的性能会有一定影响。...,开发了一个叫SEP工具,通过监控HBase 的WAL日志(Put/Delete操作),来触发对solr集群索引的异步更新,基本对HBase无侵入性(但必须开启WAL)流程图如下所示: CDH Search

    1.4K20

    大数据面试题——HBase面试题总结

    大家好,又见面了,我是你们的朋友全栈君。 1、 HBase的特点是什么?...,将近1G 数据,这会极大影响HFile 的存储效率; ②MemStore 将缓存部分数据到内存,如果Rowkey 字段过长内存的有效利用率会降低,系统将无法缓存更多的数据,这会降低检索效率。...② 列族的设计:列族的设计需要看应用场景 优势:HBase中数据时按列进行存储的,那么查询某一列族的某一列时就不需要全盘扫描,只需要扫描某一列族,减少了读I/O;其实多列族设计对减少的作用不是很明显...① HBase需要HDFS的支持,因此安装HBase前确保Hadoop集群安装完成; ② HBase需要ZooKeeper集群的支持,因此安装HBase前确保ZooKeeper集群安装完成;...配置文件的修改; ⑥ 注意集群中的各个节点的时间必须同步,否则启动HBase集群将会报错。

    71540

    Kylin在用户行为轨迹分析中的应用实践与优化

    支撑数仓、酒店等业务,近100个cube,共7TB的数据量。采用2台query端,2台job端,单独的hbase集群进行部署,保证集群高可用,高稳定性和高并发能力。...模型设计阶段优化 cube降维优化 hbase rowkey优化 build参数优化 关闭查询压缩 1、模型设计阶段优化 我们在构建模型的时候可以分为增量和全量模型,在增量模型能够满足我们的需求的时候...,坚决不使用全量模型,因为每天只build当天增量的数据总比每天build全量历史数据来的轻松,高效。...这样会造成集群计算和存储资源的极大浪费,也会影响cube的构建时间和查询性能,导致模型膨胀率变高,所以我们需要进行cube的降维优化。...4、build参数优化 高基数维度优化 对于高基数维度首先考虑从业务层面进行优化,从根源上避免高基数维度的产生,高基数维度对整个模型的膨胀率贡献是很大的,也极大影响查询性能,因此在模型构建中能够避免则避免

    1.1K20

    Apache Phoenix系列 | 真 · 从入门到精通

    查询计划显示,查询所有字段时发生了需要极力避免的扫全表操作(一般数据量在几十万级别的扫全表很容易造成集群不稳定),而查询id时利用索引表走了点查。...相对于走API的数据导入方式,不仅速度更快,而且对HBASE集群的负载也会小很多。...二、如何访问云HBASE的HDFS? 由于云HBASE上没有MR,需要借助外部的计算引擎(自建的HADOOP集群或者EMR),而使用外部的计算引擎的首先面临的问题是,如何跨集群访问HDFS。...十、全局索引设计实践 概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用。本文将讲述如何高效的设计和使用索引。...FULL SCAN: 全表扫描 LIMIT: 对查询结果取TOP N CLIENT: 在客户端执行相关操作 X-CHUNK: 根据统计信息可以把一个region分成多个CHUNK, X在查询计划中表示将要扫描的

    6K31

    Hbase面试题(面经)整理

    大家好,又见面了,我是你们的朋友全栈君。 1. Hbase是什么?hbase的特点是什么?...通过HBase API进行批量写入数据; 使用Sqoop工具批量导数到HBase集群; 使用MapReduce批量导入; HBase BulkLoad的方式。 3. hbase 的存储结构?...想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop; Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase...范围越小,性能越高; 3. scan 可以通过 setFilter 方法添加过滤器,这也是分页、多条件查询的基础。 3.全表扫描,即直接扫描整张表中所有行记录。 8....HBase 的应对办法是在写动作完成之前先写入 WAL。HBase 集群中每台服务器维护一个 WAL 来记录发生的变化。WAL 是底层文件系统上的一个文件。

    1.6K30

    HBase的rowKey设计技巧

    全表扫描,即直接扫描整张表中所有行记录 1. rowkey长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte...=10亿个字节,将近1G数据,这样会极大影响HFile的存储效率; MemStore将缓存部分数据到内存,如果rowkey字段过长,内存的有效利用率就会降低,系统不能缓存更多的数据,这样会降低检索效率...大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响同一个RegionServer上的其他region,由于主机无法服务其他region的请求。...设计良好的数据访问模式以使集群被充分,均衡的利用。为了避免写热点,设计rowkey使得不同行在同一个region,但是在更多数据情况下,数据应该被写入集群的多个region,而不是一个。...冗长的属性名虽然可读性好,但是更短的属性名存储在HBase中会更好。 本次的分享就到这里了,受益的小伙伴或对大数据技术感兴趣的朋友记得关注小菌哟(^U^)ノ~YO

    92710

    2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    弊端: 如果重复数据比较多 但是写入也比较频繁, 此时采用eager, 会导致资源被eager占用较大, 从而影响写入的效率 如何配置内存合并策略: 方案一: 全局配置, 所有表都生效 方案二: 针对某个表来设置...天  | 刚刚启动Hbase集群的时候 hbase矛盾点: HBase支持随机读写功能, HBase基于HDFS, 而HDFS不支持随机读写, 如何解决呢?...扫描zookeeper上的server父节点,获得当前可用的region server列表 和每个region server通信,获得当前已分配的region和region server的对应关系 扫描...可以正常进行,因为只有region server参与 表的数据读写还可以正常进行 因此master下线短时间内对整个hbase集群没有影响。...从上线过程可以看到,master保存的信息全是可以冗余信息(都可以从系统其它地方收集到或者计算出来) 注意:     master下线短期对hbase没有太大的影响, 因为master不会参与数据IO

    68320

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

    再重点介绍 HBase 读取数据的流程分析,并根据此流程介绍如何在客户端以及服务端优化性能,同时结合有赞线上 HBase 集群的实际应用情况,将理论和实践结合,希望能给读者带来启发。...四、读优化 在介绍读流程之后,我们再结合有赞业务上的实践来介绍如何优化读请求,既然谈到优化,就要先知道哪些点可会影响读请求的性能,我们依旧从客户端和服务端两个方面来深入了解优化的方法。...如果 scan 请求不设置这两个值,而只设置 filter,则会做全表扫描。 设置合理的 caching 数目, scan.setCaching(100)。...磁盘毛刺发生是无法避免的,通常 SATA 盘读 IOPS 在 150 左右,SSD 盘随机读在 30000 以上,所以存储介质使用 SSD 可以提升吞吐,变向降低了毛刺的影响。...当主集群因为磁盘,网络,或者其他业务突发流量影响导致某些 RegionServer 甚至集群不可用的时候,就需要提供备集群继续提供服务,备集群的数据可能会因为 HBase Replication 机制的延迟

    1.3K10

    大白话彻底讲透 HBase Rowkey 设计和实现!

    HBase 中的分布,甚至会影响我们查询的效率,可以说 RowKey 的设计质量关乎了 HBase 的质量。...通过 scan 方式,设置 startRow 和 stopRow 参数进行范围匹配; 全表扫描,即直接扫描整张表中所有行记录。...因此我们设计RowKey时,需要充分利用排序存储这个特性,将经常一起读取的行存储放到一起,要避免做全表扫描,因为效率特别低。...所以我们在向 HBase 中插入数据的时候,应优化 RowKey 的设计,使数据被写入集群的多个 Region,而不是一个。...需要注意:由于HBase中数据存储的格式是Key-Value对格式,所以如果向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据给覆盖掉(和HashMap效果相同)。

    1.7K20

    Phoenix全局索引设计实践

    文章详情:大数据技术与架构、暴走大数据 概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用。本文将讲述如何高效的设计和使用索引。...全局索引说明 全局索引的根本是通过单独的HBase表来存储数据表的索引数据。我们通过如下示例看索引数据和主表数据的关系。...Phoenix表就是HBase表,而HBase Rowkey都是通过二进制数据的字典序排列存储,也就意味着Row key前缀匹配度越高就越容易排在一起。...在实际使用中我们也只推荐使用1~4,遵循前缀匹配原则,避免触发扫全表。5~7条件就要扫描全表数据才能过滤出来符合这些条件的数据,所以是极力不推荐的。...尽量通过合理的设计数据表的主键规避建更多的索引表,因为索引表越多写放大越严重。 使用了ROW_TIMESTAMP特性后不能使用全局索引 对索引表适当是的使用加盐特性能提升查询写入性能,避免热点。

    1K20

    EMR之HBASE集群参数调优与压测

    为了快速验证参数调整是否符合预期,我们可以通过压测集群的方法,模拟上层业务对集群的访问,从而加快验证参数调整是否符合预期。...3) 避免全表扫描,这是非常耗时的动作; 4) 离线任务,关闭BlockCache, 节约内存; 1.2 服务端写操作优化 HBase是基于LSM-Tree模型实现的。...1.3 服务端读操作优化 在HBase集群Server端处理读请求的路径上,BlockCache 内存容量、HFile文件数量对读请有影响。...1.5 服务端GC优化 HBase 进程运行在JVM中,JVM 内存回收机制对Java进程有着重要影响。由于GC优化和具体业务场景息息相关,并没有一种“合理的”参数,满足一切使用场景。...通常,根据HBase集群规模,选择适当的压测节点数量。强烈建议,不要在部署有HBase 集群进程的节点充当压测节点,因为压测节点本身将占用部分资源,影响最终压测结果。

    1.9K62

    HBase读写优化

    设置Scan缓存 HBase中Scan查询可以设置缓存,方法是setCaching(),这样可以有效的减少服务端与客户端的交互,更有效的提升扫描查询的性能。...所以在用完之后,需要执行关闭操作,这点与JDBS操作MySQL类似 scanner.close() 禁用块缓存 如果批量进行全表扫描,默认是有缓存的,如果此时有缓存,会降低扫描的效率。...写入优化 写也是Hbase常有的操作之一,并且Hbase在写入操作上有着其他NoSQL无法比拟的优势,下面讲如何优化写入操作 关闭写WAL日志 一般为了保证系统的高可用性,WAL日志默认是开启状态,WAL...Region,插入该表的数据都会保存在此Region中,插入该表的所有塑化剂都会保存在该Region中,当到达一定的阈值时,才发生分裂。...这样开始时刻针对该表的写操作都集中在某台服务器上,造成这台服务器的压力很紧张,同时对整个集群资源的浪费。

    89130

    Hbase的快速使用

    专业术语与数据模型 rowkey主键 查询的三种方式,可以指定rowkey查询,指定rowkey范围,scan全表扫描 column Family列族 一个列簇可以包含多个列,一个列只能属于一个列簇,没数据类型...#端口自己指定即可 Rest是使用http浏览器操作数据库 HBase的Thrift TColumn对列的封装 TColumnValue对列及其值的封装 TResult对单行(Row)及其查询结果(若干...copytable进行复制,实际调用mapreduce进行扫描拷贝 HBase的集群复制 什么是集群复制?...相比之下HBase快照允许管理员不拷贝数据,而直接克隆一张表,这对域服务器产生的影响最小。 使用ExportSnapshot工具将现有快照导出至其他集群。...导出工具不会影响到域服务器负载,只是工作在HDFS层面,所以需要指定HDFS路径(其他集群的hbase根目录)。

    97021

    云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据

    在早期0.9x版本的时候,HBase的修复工具还有一下bug,使得即使你懂得如何修复的情况下,依然需要多次重复运行命令,绕过那些不合理的修复逻辑,甚至有时候需要自己写代码预先修复某个步骤。...按理说,扫描meta表应该很快的才对。 检查发现HDFS的HBase meta表有1T多数据!!!...第一个方案做离线compaction对集群来说没有什么风险,缺点是离线compaction并不快,因为meta表region只有一个,执行离线meta表compaction时只有一个task,非常的缓慢耗时...第二个方案是逆向修复meta表信息。看似风险很大,其实实际操作起来,很多风险可以降低。我们可以备份好核心的元数据,只有就可以在恢复失败的时候,还原到原来修复手术的前状态。...小结 由于用户的自建HBase集群不像云HBase一样可以我们远程登录管理,只能使用一些远程桌面工具先登录到用户的工作PC再跳到集群环境上,整个操作起来非常的卡顿,影响了问题定位以及最终抢救的效率。

    93730
    领券