博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase1.2.3架构剖析(五) 之 批量装载
阅读量:5874 次
发布时间:2019-06-19

本文共 940 字,大约阅读时间需要 3 分钟。

hot3.png

1  批量装载(Bulk Loading)

        HBase 有好几种方法将数据装载到表。最直接的方式即可以通过MapReduce任务,也可以通过普通客户端API。但是这都不是高效方法。

        批量装载特性采用 MapReduce 任务,将表数据输出为HBase的内部数据格式,然后可以将产生的存储文件直接装载到运行的集群中。批量装载比简单使用 HBase API 消耗更少的CPU和网络资源。

装载过程包含两个主要步骤:

1.1   通过mapreduce任务准备数据

        批量装载第一步,从MapReduce任务通过HFileOutputFormat2产生HBase数据文件(StoreFiles) 。输出数据为HBase的内部数据格式,以便随后装载到集群更高效。

        为了处理高效, HFileOutputFormat2必须为每个输出的HFile配置在一个region内。为了做到这一点,输出将被批量装载到HBase的任务中,使用Hadoop 的TotalOrderPartitioner类可以划分key的范围。

        HFileOutputFormat2包括一个很方便的函数configureIncrementalLoad(), 可以基于一个表当前的region边界自动设置TotalOrderPartitioner。

1.2   完成数据装载

        导入数据已经准备好,可以使用importtsv工具选择“importtsv.bulk.output”选项或者用HFileOutputFormat的MapReduce job。Completebulkload工具用于导入到运行中的集群。这个命令行工具遍历所准备好的数据文件,并确定文件属于哪个region,然后找到合适的RegionServer接收HFile,将它移动到它的存储目录中,把数据提供给客户端。

        如果region范围在批量装载准备期间或者在准备和完成之间发生了变化,Completebulkload将自动拆分数据文件到新的region。这个过程不是最佳的,所以用户应该小心以尽量减少较大的容量负载并导入集群的延迟,特别是客户端通过其他方式同时加载数据。

转载于:https://my.oschina.net/lzhaoqiang/blog/845191

你可能感兴趣的文章
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>
CDays–4 习题一至四及相关内容解析。
查看>>
L3.十一.匿名函数和map方法
查看>>
java面向对象高级分层实例_实体类
查看>>
android aapt 用法 -- ApkReader
查看>>
[翻译]用 Puppet 搭建易管理的服务器基础架构(3)
查看>>
Android -- AudioPlayer
查看>>