Package HBaseIA.TwitBase.coprocessors

Source Code of HBaseIA.TwitBase.coprocessors.FollowsObserver

package HBaseIA.TwitBase.coprocessors;

import static HBaseIA.TwitBase.hbase.RelationsDAO.FOLLOWS_TABLE_NAME;
import static HBaseIA.TwitBase.hbase.RelationsDAO.FROM;
import static HBaseIA.TwitBase.hbase.RelationsDAO.RELATION_FAM;
import static HBaseIA.TwitBase.hbase.RelationsDAO.TO;

import java.io.IOException;

import org.apache.hadoop.hbase.CoprocessorEnvironment;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.HTablePool;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
import org.apache.hadoop.hbase.coprocessor.ObserverContext;
import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
import org.apache.hadoop.hbase.util.Bytes;

import HBaseIA.TwitBase.hbase.RelationsDAO;

public class FollowsObserver extends BaseRegionObserver {

  private HTablePool pool = null;

  @Override
  public void start(CoprocessorEnvironment env) throws IOException {
    pool = new HTablePool(env.getConfiguration(), Integer.MAX_VALUE);
  }

  @Override
  public void stop(CoprocessorEnvironment env) throws IOException {
    pool.close();
  }

  @Override
  public void postPut(
      final ObserverContext<RegionCoprocessorEnvironment> e,
      final Put put,
      final WALEdit edit,
      final boolean writeToWAL)
    throws IOException {

    byte[] table
      = e.getEnvironment().getRegion().getRegionInfo().getTableName();
    if (!Bytes.equals(table, FOLLOWS_TABLE_NAME))
      return;

    KeyValue kv = put.get(RELATION_FAM, FROM).get(0);
    String from = Bytes.toString(kv.getValue());
    kv = put.get(RELATION_FAM, TO).get(0);
    String to = Bytes.toString(kv.getValue());

    RelationsDAO relations = new RelationsDAO(pool);
    relations.addFollowedBy(to, from);
  }
}
TOP

Related Classes of HBaseIA.TwitBase.coprocessors.FollowsObserver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.