我正在尝试将一些网络数据批量加载到Hbase表中。我的映射器发出ImmutableBytesWritable,KeyValue对。我声明了一个预拆分表,其中列族压缩设置为SNAPPY,数据块编码设置为PREFIX_TREE(hcd.setCompressionType(Algorithm.SNAPPY);
和hcd.setDataBlockEncoding(DataBlockEncoding.PREFIX_TREE);
)。
随后我使用HFileOutputFormat2.configureIncrementalLoad(job,table),它应该为我生成HFiles。但是,我遇到以下错误。
14/12/14 12:23:04 INFO mapreduce.Job: map 100% reduce 80%
14/12/14 12:23:06 INFO mapreduce.Job: Task Id : attempt_1416932815472_0065_r_000001_0, Status : FAILED
Error: org.apache.hadoop.hbase.io.encoding.HFileBlockDefaultEncodingContext.<init>(Lorg/apache/hadoop/hbase/io/compress/Compression$Algorithm;Lorg/apache/hadoop/hbase/io/encoding/DataBlockEncoding;[B)V
我没有正确配置压缩吗?我怀疑HFileOutputFormat2可能不支持压缩/编码,但是当它们被禁用时我会得到同样的错误。有什么想法正在发生什么?