Exception in thread "main" java.io.IOException: Trying to load more than 32 hfiles to one family of one region
从报错日志中可以很明显看出因为Hfiles的个数超出了32默认的时32,关键时怎么改的问题,我们用的是CDH在Hbase的webui页面,没找到类似配置,通过在网上查找资料发现可以在程序中设置。
conf.setInt(LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,“你要设置的Hfile个数”)
在设置个数的时候也遇到一个坑,刚开始改成64,提示超出了64,设置成96又提示超出了96,到底设置多少才合适呢?
这要看你在临时文件中生成了多少Hfile文件
result.saveAsNewAPIHadoopFile("/tmp/hbaeTest", classOf[ImmutableBytesWritable], classOf[KeyValue], classOf[HFileOutputFormat], conf) val bulkLoader = new LoadIncrementalHFiles(conf) bulkLoader.doBulkLoad(new Path("/tmp/hbaeTest"), table)
去这个目录看一下有多少个文件设置成多少就可以了
如果临时文件在HDFS上直接使用:hadoop fs -count /tmp/hbaeTest 命令就可以知道生成了多少个HFile文件了