Java 在减速器后生成HFileOutputFormat

Java 在减速器后生成HFileOutputFormat,java,hadoop,hbase,Java,Hadoop,Hbase,我已经写了一个MapReduce作业,它需要Mapper和Reducer部分。在生成Puts的Reducer之后,我想将结果保存为HFileOutputFormat,以进行增量加载 这是我的问题,因为HFileOutputFormat还需要一个减速机来生成HFile。据我所知,不可能有两个异径管按顺序排列 在Reducer中,我将生成的put直接写入上下文,并得到以下异常: java.lang.ClassCastException: org.apache.hadoop.hbase.client.

我已经写了一个MapReduce作业,它需要Mapper和Reducer部分。在生成Puts的Reducer之后,我想将结果保存为HFileOutputFormat,以进行增量加载

这是我的问题,因为HFileOutputFormat还需要一个减速机来生成HFile。据我所知,不可能有两个异径管按顺序排列

在Reducer中,我将生成的put直接写入上下文,并得到以下异常:

java.lang.ClassCastException: org.apache.hadoop.hbase.client.Put cannot be cast to org.apache.hadoop.hbase.KeyValue
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.hbase.client.Put<init>()
然后,我尝试构建一个ChainReducer,将put传递给另一个映射器。这些映射器只将给定的put写回上下文。因此,现在应该可以为HFile执行减速器。但我得到了以下例外:

java.lang.ClassCastException: org.apache.hadoop.hbase.client.Put cannot be cast to org.apache.hadoop.hbase.KeyValue
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.hbase.client.Put<init>()
我能做什么

提前谢谢

托比