HbaseSink Flume异常

时间:2014-01-08 12:15:20

标签: java hbase flume

以下是我的水槽Sink代码,用于在Hbase中拆分事件和存储,它在获取null事件时给出错误

    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() {}

    }

这个错误连续无限 错误:[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)     在java.lang.Thread.run(Thread.java:724)

有任何解决方案

提前致谢..

0 个答案:

没有答案