我正在将许多文件导入hbase表,所以我决定使用bulkload9.8。散装货物。我已经通过mapreduce作业准备了数据,但是当我尝试使用这个命令完成加载时
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <src> <target_table>
我有以下错误:
ERROR mapreduce.LoadIncrementalHFiles: Trying to load more than 32 hfiles to family d of region with start key
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:288)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:842)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:847)
您知道如何更改每个家庭和地区的文件数吗。是否可以从cli更改它?
3条答案
按热度按时间bq9c1y661#
你检查过这个了吗?https://hbase.apache.org/xref/org/apache/hadoop/hbase/mapreduce/loadincrementalhfiles.html
可以尝试使用传递给作业的配置对象更改此属性。
rta7y2nd2#
@阿希什的回答是正确的。要在shell中使用它,请尝试:
tyu7yeag3#
您可以将hbase-site.xml文件中的“hbase.hregion.max.filesize”或as-d参数配置为更高的值(可能取决于您的输入文件大小),这样创建的hfiles数就会更少。默认值为10 gb。
或者,您可以将hbase-site.xml或as-d参数中的“hbase.mapreduce.bulkload.max.hfiles.perregion.perfamily”配置为更高的值(可以从hdfs中找到为列族创建的最大hfiles数)。默认值为32。