HBASE学习九:数据写入 -> BulkLoad

1、功能

在实际生产环境中,有这样一种场景:用户数据位于HDFS中,业务需要定期将这部分海量数据导入HBase系统,以执行随机查询更新操作。这种场景如果调用写入API进行处理,极有可能会给RegionServer带来较大的写入压力:

  • 引起RegionServer频繁f lush,进而不断compact、split,影响集群稳定性。
  • 引起RegionServer频繁GC,影响集群稳定性。
  • 消耗大量CPU资源、带宽资源、内存资源以及IO资源,与其他业务产生资源竞争。
  • 在某些场景下,比如平均KV大小比较大的场景,会耗尽RegionServer的处理线程,导致集群阻塞。

鉴于存在上述问题,HBase提供了另一种将数据写入HBase集群的方法——BulkLoad。

BulkLoad首先使用MapReduce将待写入集群数据转换为HFile文件,再直接将这些HFile文件加载到在线集群中。显然,BulkLoad方案没有将写请求发送给RegionServer处理,可以有效避免上述一系列问题。

1.3x版本后hbase开始支持Bulkload数据复制,为了开启该功能,需要开启开关:hbase.replication. bulkload.enabled=true。

2、核心流程

BulkLoad主要由两个阶段组成:HFile生成阶段与HFile导入阶段。

2.1 HFile生成阶段

这个阶段会运行一个MapReduce任务,MapReduce的mapper需要自己实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Studying!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值