提升HBase BulkLoad工具批量加载效率
操作场景
HBase BulkLoad批量加载功能采用了MapReduce jobs直接生成符合HBase内部数据格式的文件,然后把生成的StoreFiles文件加载到正在运行的集群。使用批量加载相比直接使用HBase的API会节约更多的CPU和网络资源。
ImportTSV是一个HBase的表数据加载工具。
前提条件
在执行批量加载时需要通过“Dimporttsv.bulk.output”参数指定文件的输出路径。
操作步骤
在HBase客户端执行批量加载任务时,在BulkLoad命令行中加入表1中的参数。
|
参数 |
描述 |
示例 |
|---|---|---|
|
-Dimporttsv.mapper.class |
用户自定义Mapper类,通过把键值对的构造从Mapper移动到Reducer以提高性能。Mapper只需要把每一行的原始文本发送到Reducer,Reducer解析每一行的每一条记录并创建键值对。参数取值包括:
仅当执行没有HBASE_CELL_VISIBILITY OR HBASE_CELL_TTL选项的批量加载命令时才支持配置该参数值为“org.apache.hadoop.hbase.mapreduce.TsvImporterByteMapper”,可以得到更好的性能。 |
org.apache.hadoop.hbase.mapreduce.TsvImporterTextMapper |