【数据迁移】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 流程图
相关推荐
q***465213 小时前
Win10下安装 Redis
数据库·redis·缓存
p***924815 小时前
深入理解与实战SQL IFNULL()函数
数据库·sql·oracle
q***816417 小时前
MySQL:数据查询-limit
数据库·mysql
p***924817 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
数据库·mysql
2501_9416233218 小时前
人工智能赋能智慧农业互联网应用:智能种植、农业数据分析与产量优化实践探索》
大数据·人工智能
JIngJaneIL18 小时前
社区互助|社区交易|基于springboot+vue的社区互助交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·社区互助
晚风吹人醒.18 小时前
缓存中间件Redis安装及功能演示、企业案例
linux·数据库·redis·ubuntu·缓存·中间件
YangYang9YangYan19 小时前
网络安全专业职业能力认证发展路径指南
大数据·人工智能·安全·web安全
Y***985119 小时前
DVWA靶场通关——SQL Injection篇
数据库·sql
Yawesh_best19 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全