Hbase加载数据失败

现象描述

超过32个HFile加载到一个Region下的Family时,出现如下错误信息:

Exception in thread "main" java.io.IOException: Trying to load more than 32 hfiles to one family of one region
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:302)
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:884)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:75)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
        at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:890)

可能原因

加载数据时,默认支持的最大Hfile数为32个。当一个Region下的一个Family超过32个HFile时,会出现此错误。

定位思路

无。

处理步骤

  1. 执行LoadIncrementalHFiles命令时添加参数,并给“hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily”参数设置一个最大值。该值表示Family下可生成的最多的HFile的个数。 例如,执行如下命令使系统支持40个HFile。cd <hbase_client>/HBase/hbase bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=40 <hdfs://storefileoutput> <tablename>

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注