【数据迁移】HBase Bulkload批量加载原理

概述

在有大量数据需要写入到HBase当中时,通常有putBulkload两种方式。

put方式

在put数据时会先将数据的更新操作信息和数据信息写入WAL,在写入到WAL后,数据就会被放到MemStore中,当MemStore满后数据就会被 flush 到磁盘(即形成HFile文件)。在这种写操作过程会涉及到 flush、split、compaction 等操作,容易造成节点不稳定、数据导入慢、耗费资源等问题。在海量数据的导入过程极大的消耗了系统性能。避免这些问题最好的方法就是使用 BulkLoad 的方式来加载数据到 HBase 中。

scala 复制代码
val put = new Put(rowKeyBytes)
put.addColumn(cf, column, value)
put.addColumn(cf, column, value)
put.addColumn(cf, column, value)
put.addColumn(cf, column, value)

table.put(put)

HBase 写入路径流程图
Client RegionServer WAL Memstore HFile Put/Delete Write to WAL Write to memstore Flush to disk Client RegionServer WAL Memstore HFile

Bulkload方式

BulkLoad 数据导入流程

  • BulkLoader 利用 HBase 数据按照 HFile 格式存储在 HDFS 的原理,使用 MapReduce 直接批量生成 HFile 格式文件后,RegionServers 再将 HFile 文件移动到相应的 Region 目录下。
BulkLoad 流程图
相关推荐
BD_Marathon3 小时前
启动hbase后,hbmaster总是挂
hbase
Joy T3 小时前
海南蓝碳:生态财富与科技驱动的新未来
大数据·人工智能·红树林·海南省·生态区建设
言之。3 小时前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
风清再凯3 小时前
01-ELK安装ES,ES-head
大数据·elk·elasticsearch
Guheyunyi4 小时前
风险感知中枢:监测预警系统的架构与核心
大数据·运维·安全·重构·架构·自动化
正在走向自律4 小时前
大数据背景下时序数据库选型指南:国产开源技术的突破与实践
大数据·开源·时序数据库
白衣鸽子4 小时前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
shinelord明5 小时前
【大数据技术实战】Kafka 认证机制全解析
大数据·数据结构·分布式·架构·kafka
DokiDoki之父5 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis