Java HbaseSink水槽异常

Java HbaseSink水槽异常,java,hbase,flume,Java,Hbase,Flume,下面是我的flume接收器代码,用于拆分事件并将其存储在Hbase中,当它接受空事件时,它会给我错误 public class MyHbaseEventSerializer implements HbaseEventSerializer { @Override public void configure(Context context){} @Override public void initialize(Event event, byte[]

下面是我的flume接收器代码,用于拆分事件并将其存储在Hbase中,当它接受空事件时,它会给我错误

    public class MyHbaseEventSerializer implements HbaseEventSerializer {
     @Override
      public void configure(Context context){}
    @Override
      public void initialize(Event event, byte[] columnFamily) {

          this.payload = event.getBody();
          this.cf = columnFamily;
          this.e = event;    

     }
     @Override
   public List<Row> getActions() throws FlumeException {
     List<Row> actions = Lists.newArrayList();
    try{
       // here splitting event and store in Hbase.
    }catch(Exception e){
      throw new FlumeException("Could not get row key!", e);
      }
    return actions
  }
   @Override
  public List<Increment> getIncrements() {
    List<Increment> incs = new LinkedList<Increment>();
  }
  @Override
  public void close() {}

    }
公共类MyHbaseEventSerializer实现HbaseEventSerializer{
@凌驾
公共void配置(上下文){}
@凌驾
公共void初始化(事件事件,字节[]列族){
this.payload=event.getBody();
this.cf=columnFamily;
e=事件;
}
@凌驾
public List getActions()抛出FlumeException{
List actions=Lists.newArrayList();
试一试{
//这里是拆分事件并存储在Hbase中。
}捕获(例外e){
抛出新的FlumeException(“无法获取行键!”,e);
}
返回操作
}
@凌驾
公共列表{
List incs=new LinkedList();
}
@凌驾
公共void close(){}
}
这是一个错误 错误:[SinkRunner PollingRunner DefaultSinkProcessor](org.apache.flume.SinkRunner$PollingRunner.run:160)-无法传递事件。例外情况如下。 java.lang.IllegalStateException:在事务打开时调用begin()! 位于org.apache.flume.channel.BasicTransactionSemantics.begin(BasicTransactionSemantics.java:131) 位于org.apache.flume.sink.hbase.HBaseSink.process(HBaseSink.java:234) 位于org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68) 位于org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) 运行(Thread.java:724)

有没有解决这个问题的方法

提前谢谢