Hadoop 试图将32个以上的hfiles加载到一个区域的一个族

Hadoop 试图将32个以上的hfiles加载到一个区域的一个族,hadoop,hbase,Hadoop,Hbase,我正在将许多文件导入HBase表,所以我决定使用批量加载。我已经通过MapReduce作业准备好了数据,但是当我尝试使用此命令完成加载时 hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <src> <target_table> 您知道如何更改每个家庭和地区的hfiles数吗。并且可以从CLI更改它?您是否检查了此项? 您可以尝试使用传递给作业的配置对象更改此属性。您可以在hbase-site.

我正在将许多文件导入HBase表,所以我决定使用批量加载。我已经通过MapReduce作业准备好了数据,但是当我尝试使用此命令完成加载时

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <src> <target_table>
您知道如何更改每个家庭和地区的hfiles数吗。并且可以从CLI更改它?

您是否检查了此项?


您可以尝试使用传递给作业的配置对象更改此属性。

您可以在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。

@ashish的答案是正确的。要在shell中使用它,请尝试使用:

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024 <SOURCE> <TABLE>
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles-Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024

谢谢,我正在检查这个。我试图更改hbase-site.xml中的hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily属性。但这对我不起作用:(我想你必须在作业级别上设置它,而不是在hbase级别。不同的Hadoop发行版以不同的方式处理配置。在调用LoadIncrementalHFile之前,只需将它的属性设置为configuration object。我真的不知道怎么做。你能给我举个例子吗?非常感谢!我明白了,你是通过cli来实现的,我使用java.你试过这样做吗:hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles-Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=128或hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles-D hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=128看看这个:无论如何,你的LoadIncrementalHFiles应该得到缩放rum和zookeeper客户端端口,以便与hbase交互。是否尝试在此处设置hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily:“/etc/hadoop/conf/hbase site.xml”在运行LoadIncrementalHFiles的主机上?您的评论不正确,您提到您试图在某个位置设置某些内容。我遇到了相同的问题,添加建议解决了我的问题,但我仍然有一个问题。所有Hfiles都没有加载。部分Hfiles没有加载。例如,最初的大小是3.9 G/output/day=01/g1Out/d加载后尺寸为26.0 M/output/day=01/g1Out/d关于如何完全加载Hfiles的建议?
 public static final String MAX_FILES_PER_REGION_PER_FAMILY = "hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily";

 maxFilesPerRegionPerFamily = conf.getInt(MAX_FILES_PER_REGION_PER_FAMILY, 32);
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024 <SOURCE> <TABLE>