hbase大规模数据写入的优化历程

查询MYSQL和查询HBASE速度比较 MySQL,关系型数据库; HBase,NoSql数据库。 查询Mysql和查询HBase,到底哪个速度快呢? 与一些真正的大牛讨论时,他们说HBase写入速度,可以达到每秒1W。而HBase的理想速度为每秒10W。 来个实验说明一下,此实验只能表明,当前环境下运行状态。我的实验效果,没有到1W,还在优化中…   环境: 有3台虚拟机,运行Hadoop集群 阅读详情

业务背景:由于需要将ngix日志过滤出来的1亿+条用户行为记录存入Hbase数据库,以此根据一定的条件来提供近实时查询,比如根据用户id及一定的时间段等条件来过滤符合要求的若干行为记录,满足这一场景的技术包括:Solr,Elasticsearch,hbase等,在此选用了Hbase来实践。

step 1 :

直接hbase建表,然后读取记录文件逐条写入Hbase。由于hbase实际的写入速度远远小于我的提交速度,在写入了1700条记录后,hbase出现了宕机,提交后无响应。查看hbase日志,出现 out of memory异常。

step 2:

考虑在建表的时候没有进行预分区,因此写入的时候会存在热点写的问题,同时数据持续增长,需要不断的对region进行split,实际上这一步相当消耗资源。因此对要写入的Hbase表重新预分区。好在上一步骤中写入的数据不多,因此直接删除表和数据后重新建表并预分区:
create 'user_actions', {NAME => 'info', VERSIONS=> 3},{SPLITS => ['130','140','160','170','180']}  

设计预分区的时候需要有个预判,rowkey的范围及在各个区间的可能分布情况,由于我这里的rowkey是组合用户的注册电话/时间及其他字段,因此上述的预分区,可以将记录较好的散列在各个region上,对热点写有一定的减缓作用。
同时,针对out  of memory异常,修改hbase配置文件/conf/hbase-site.xml,将hbase的堆内存增加到3GB(条件有限,如果硬件条件好的话,可以增加到4-8GB)。
继续写入,但是写入速度很慢,维持在数百条/秒的样子,同时写入了20几万条后响应速度越来越慢。

STEP 3:

上述问题的根源在于高频提交小数据,导致Hbase疲于创建线程并进行资源的回收,最终甚至会出现宕机。
之后,将单条put到Hbase改为一次put多条记录到hbase,即批量提交,同时限制一秒内提交的频次。最后顺利写入。由于hbase集群只有三台机器(一台master,2台slave),进过上述优化后,写入速度基本维持在1w-2w条/秒的水平,基本满足需要了。

总结:在hbase涉及一次性写入大量数据时,有几个地方可以考虑进行优化:(1)建表的同时进行预分区 (2)修改Hbase本身的配置(能够优化写入和读取的配置项远不止修改堆内存这一项,在此不表了)  (3)尽量使用批量写入的方法,同样的道理,读取的时候,使用批量读的方法 (4)网络IO/磁盘IO

除了批量Put外,Hbase还支持Hfiles方式导入:

STEP 1:

将要导入的数据预生成hfiles文件。

STEP 2:

使用Hbase的BulkLoad方式将Hfile文件批量导入Hbase。

HBase在大规模用户画像系统中的应用 用户画像系统是企业实现精准营销、个性化推荐的核心基础设施,其核心需求是大规模高维特征的高效存储与实时检索。HBase作为分布式列存储系统,凭借列族模型、稀疏存储、高并发读写、横向可扩展等特性,成为大规模用户画像系统的首选存储方案。本文从概念基础、理论框架、架构设计、实现机制、实际应用五个维度,系统解析HBase与用户画像系统的适配性,并结合教学元素(类比、可视化、案例)降低理解门槛,最终给出高级考量(安全、伦理、未来趋势)与战略建议,为企业构建高可用、高性能的用户画像系统提供全面指导。 阅读详情

相关推荐

Java 大视界 -- Java 与大数据存储优化:HBase 与 Cassandra 应用(十)

本文围绕 Java 与大数据存储优化,深入介绍 HBase 与 Cassandra 应用,对比其特点与优化策略,为大数据存储提供参考。

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 3291

HBase

HBase知识点

小道的博客 2173

MedicalNet实战:3D医疗影像分割从零到部署(PyTorch+ResNet50)

本文详细介绍了基于PyTorch和MedicalNet预训练模型进行3D医疗影像分割的完整实战流程。通过加载ResNet50预训练权重进行迁移学习,大幅降低了对标注数据量的需求,并提升了模型性能。文章涵盖了从数据准备、模型微调、训练优化到最终部署的每一步,为医疗AI开发者提供了从零到部署的清晰指南。

weixin_29062671的博客 589

HBase写性能优化策略

HBase写入通常会遇到两种问题: # 写的性能很差 # 根本写不进去 一 HBase写入性能优化 1.1 是否需要写WAL? WAL是否需要同步写? WAL机制可以确保数据即使写入缓存的数据丢失了,也可以恢复;另外是为了集群之间的异步复制。默认WAL机制开启,且使用同步机制写入WAL. 我们可以考虑是否需要写入WAL,通常大多数企业业务都会开启,但是对于部分业务可能并不特别

happy19870612's blog 8303

视频帧插学习(三):ema-vfi代码拆解和分析

video interp EMA-VFI

mikhailbran的博客 711

技术指南| 叶绿体基因组高级分析全流程解析

本文详细解析了叶绿体基因组高级分析的全流程,包括实验设计、序列组装与注释、比较基因组分析、选择压力与功能进化等关键步骤。通过实战案例和技术技巧,帮助研究者掌握叶绿体基因组分析的核心方法,提升植物进化研究和系统学分析的效率与准确性。

weixin_33725239的博客 492

每秒125万条写入速度-时序数据库Machbase中的Tag table的基本使用

Background 上年6月份写过一篇关于Machbase时许数据库的简单介绍 【时序数据库Machbase】。 但之前只是简单介绍了下,今天我们详细介绍下,主要是Machbase中针对存储传感器监测数据而设计的Tag table的基本使用,并在本地单机环境简单测试了一下数据的写入性能,写入的数据和之前测试中【Influxdb和TDengine的写入性能测试(Java)】使用的一样,一个传感器带三个指标数据。最终测试结果为【125万条/秒】。这次测试的服务器和之前测试Influxdb和TDengine

on the way . . . 1979

富士SC2022,C325,C328打印机扫描到网络详细教程

富士打印机SC2022,C328,C325等型号扫描到电脑教程

weixin_41926602的博客 1万+

hbase大规模数据写入的优化历程 ,ZZ

http://blog.youkuaiyun.com/zbc1090549839/article/details/51582817 转载于:https://www.cnblogs.com/GrantYu/p/5766992.html

aiyongshan6014的博客 129

浅谈Android MVI架构---大自然的搬运工~~~

浅谈 Android MVI架构

hong_world的博客 2158

TM1621/HT1621 段码LCD驱动器

TM1621 LCD 驱动器

qq_45325304的博客 1万+

HBase 性能优化 详解

在深入讨论优化策略之前,先简单回顾 HBase 的核心架构和工作原理。想要详细了解可以看我的HBase架构介绍。1.1 HBase 架构HMaster:负责元数据管理和 Region 的分配、迁移等操作。:负责数据的读写,管理多个 Region,存储实际的数据。ZooKeeper:作为分布式协调服务,管理集群状态和协同操作。HBase 通过分区(Region)存储数据,每个 Region 对应一定范围的 Row Key。当数据量超过设定的阈值时,Region 会进行自动切分。1.2 数据存储原理。

goTsHgo的博客 2301

OpenClaw 报错 TypeError: Cannot read properties of undefined (reading ‘prototype‘):Node.js 版本不兼容

国产化环境中部署OpenClaw云边协同平台时,出现"TypeError: Cannot read properties of undefined (reading 'prototype')"报错。经分析发现根本原因是Node.js版本与依赖生态不兼容,新版本Node(如v21)移除了旧依赖使用的内部API。解决方案包括:1)使用nvm切换至兼容的Node 16/18 LTS版本;2)容器化部署固定Node版本;3)遵循官方推荐的引擎版本范围。该问题揭示现代工程中版本管理的重要性,

博客 2314

hbase大规模数据写入

业务背景:由于需要将ngix日志过滤出来的1亿+条用户行为记录存入Hbase数据库,以此根据一定的条件来提供近实时查询,比如根据用户id及一定的时间段等条件来过滤符合要求的若干行为记录,满足这一场景的技术包括:Solr,Elasticsearch,hbase等,在此选用了Hbase来实践。 step 1 : 直接hbase建表,然后读取记录文件逐条写入Hbase。由于hbase实际的写入速度远...

u014156013的博客 2387

【部署】OpenClaw版本降级实操(含全量卸载)

本文详细介绍了OpenClaw工具的降级与卸载方法。主要内容包括:1)通过npm安装指定版本的核心命令及国内镜像加速方案;2)两种卸载路径:CLI工具存在时的简易一键卸载(含交互式与非交互式命令)和手动分步卸载流程;3)CLI已删除但服务仍在运行时,针对macOS(launchd)、Linux(systemd)和Windows(计划任务)系统的具体清理步骤。文章特别强调了卸载前备份的重要性,并提供了不同安装方式(常规安装与源码克隆)的额外说明,确保用户能彻底清理所有组件。

海兰 3174

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

优化Hbase查询速度

环境:suse 8G内存,8核,12T磁盘 hbase master 占一台,其他7台作为hbase的region server 注意:此处不讨论hadoop 情景: 我们有7亿的数据...

chuteng3602的博客 2459

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

hbase数据读取优化_HBase 客户端怎么读取与写入数据以及如何优化写入读取

1. HBase 介绍1.1 HBase 是什么HBase 全称为 Hadoop Database,即 Hadoop 数据库,是一个高可靠、高性能、面向列族、可伸缩的分布式的存储系统。HBase 使用 HDFS 作为其文件存储系统,可以使用 Hadoop 的 MapReduce、Spark 及 Flink 来处理 HBase 中的海量数据,利用 ZooKeeper 作为其协调工具。可在廉价 PC ...

weixin_39890102的博客 326

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

一种大规模网络流式数据缓存写入的方法

一种大规模网络流式数据缓存写入的方法  摘要 本发明提供一种大规模网络流式数据缓存写入的方法包括:客户端将采集的数据封装后,发送给服务器端;服务器端对接收到的数据进行解析,确认数据的来源,并将数据格式统一;将格式统一后的数据,根据其来源写入不同内存的缓存区域;对写入不同内存缓存区域的数据制定不同的缓存策略,并将满足策略触发条件的数据从内存写入本地文件系统;将写入本地文件系统的数据根

yidaizongshi579的博客 2287

HBase优化与LSM树深度剖析技术博客

HBase基于LSM树实现了高效的写入与扩展能力,但优化需结合实际业务场景,合理调参、监控与建模。掌握其底层原理,有助于系统性提升HBase集群性能与稳定性。

IT技术学习与工作笔记分享 926

通过HBase实现大规模日志数据存储与分析

HBase是基于Hadoop的分布式列存储数据库,适用于海量、非结构化或半结构化数据的存储。它能够通过水平扩展来支持大规模数据,并且与Hadoop生态系统深度集成,支持大规模数据分析任务。

IT枫斗者的博客 1422

HBase数据库设计:规划和优化

1.背景介绍 1.背景介绍 HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。它是Hadoop生态系统的一部分,可以与HDFS、MapReduce、ZooKeeper等组件集成。HBase具有高可靠性、高性能和易用性,适用于大规模数据存储和实时数据处理。 在现代互联网企业中,数据量不断增长,传统关系型数据库已经无法满足实时性、可扩展性和高可用性等需...

AI天才研究院 1434
上一篇: FtpClient中文乱码问题解决
下一篇: 对提高HBase写性能的一些思考
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值