我编写了一个MapReduce-Job,它需要Mapper和Reducer部分。在Reducer(生成Puts)之后,我想将结果保存到HFileOutputFormat中以进行增量加载。
这是我的问题,因为HFileOutputFormat还需要一个Reducer来生成HFile。据我所知,不可能有两个Reducers顺序。
在Reducer中,我将生成的Puts直接写入上下文并获得以下异常:
java.lang.ClassCastException: org.apache.hadoop.hbase.client.Put cannot be cast to org.apache.hadoop.hbase.KeyValue
然后我尝试构建一个ChainPeducer,它将Puts传递给另一个Mapper。这些Mapper只将给定的Puts写回上下文。所以现在应该可以为HFile执行Reducer。但后来我得到了这些例外:
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.hbase.client.Put<init>()
我该怎么办?
提前致谢!
托比