Java Code Examples for org.apache.hadoop.hbase.filter.FilterBase

The following examples show how to use org.apache.hadoop.hbase.filter.FilterBase. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: hbase   Source File: TestHStore.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void testFlushBeforeCompletingScanWoFilter() throws IOException, InterruptedException {
  final AtomicBoolean timeToGoNextRow = new AtomicBoolean(false);
  final int expectedSize = 3;
  testFlushBeforeCompletingScan(new MyListHook() {
    @Override
    public void hook(int currentSize) {
      if (currentSize == expectedSize - 1) {
        try {
          flushStore(store, id++);
          timeToGoNextRow.set(true);
        } catch (IOException e) {
          throw new RuntimeException(e);
        }
      }
    }
  }, new FilterBase() {
    @Override
    public Filter.ReturnCode filterCell(final Cell c) throws IOException {
      return ReturnCode.INCLUDE;
    }
  }, expectedSize);
}
 
Example 2
Source Project: hbase   Source File: TestHStore.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testFlushBeforeCompletingScanWithFilter() throws IOException, InterruptedException {
  final AtomicBoolean timeToGoNextRow = new AtomicBoolean(false);
  final int expectedSize = 2;
  testFlushBeforeCompletingScan(new MyListHook() {
    @Override
    public void hook(int currentSize) {
      if (currentSize == expectedSize - 1) {
        try {
          flushStore(store, id++);
          timeToGoNextRow.set(true);
        } catch (IOException e) {
          throw new RuntimeException(e);
        }
      }
    }
  }, new FilterBase() {
    @Override
    public Filter.ReturnCode filterCell(final Cell c) throws IOException {
      if (timeToGoNextRow.get()) {
        timeToGoNextRow.set(false);
        return ReturnCode.NEXT_ROW;
      } else {
        return ReturnCode.INCLUDE;
      }
    }
  }, expectedSize);
}
 
Example 3
Source Project: hbase   Source File: TestHStore.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testFlushBeforeCompletingScanWithFilterHint() throws IOException,
    InterruptedException {
  final AtomicBoolean timeToGetHint = new AtomicBoolean(false);
  final int expectedSize = 2;
  testFlushBeforeCompletingScan(new MyListHook() {
    @Override
    public void hook(int currentSize) {
      if (currentSize == expectedSize - 1) {
        try {
          flushStore(store, id++);
          timeToGetHint.set(true);
        } catch (IOException e) {
          throw new RuntimeException(e);
        }
      }
    }
  }, new FilterBase() {
    @Override
    public Filter.ReturnCode filterCell(final Cell c) throws IOException {
      if (timeToGetHint.get()) {
        timeToGetHint.set(false);
        return Filter.ReturnCode.SEEK_NEXT_USING_HINT;
      } else {
        return Filter.ReturnCode.INCLUDE;
      }
    }
    @Override
    public Cell getNextCellHint(Cell currentCell) throws IOException {
      return currentCell;
    }
  }, expectedSize);
}
 
Example 4
Source Project: hbase   Source File: TestImportExport.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Test addFilterAndArguments method of Import This method set couple
 * parameters into Configuration
 */
@Test
public void testAddFilterAndArguments() throws IOException {
  Configuration configuration = new Configuration();

  List<String> args = new ArrayList<>();
  args.add("param1");
  args.add("param2");

  Import.addFilterAndArguments(configuration, FilterBase.class, args);
  assertEquals("org.apache.hadoop.hbase.filter.FilterBase",
      configuration.get(Import.FILTER_CLASS_CONF_KEY));
  assertEquals("param1,param2", configuration.get(Import.FILTER_ARGS_CONF_KEY));
}
 
Example 5
private Scan wrapWithDeleteFilter(final Scan scan, final TransactionState state) {
    FilterBase deleteFilter = new FilterBase() {

        private boolean rowFiltered = false;

        @Override
        public void reset() {
            rowFiltered = false;
        }

        @Override
        public boolean hasFilterRow() {
            return true;
        }

        @Override
        public void filterRow(final List<KeyValue> kvs) {
            state.applyDeletes(kvs, scan.getTimeRange().getMin(), scan.getTimeRange().getMax());
            rowFiltered = kvs.isEmpty();
        }

        @Override
        public boolean filterRow() {
            return rowFiltered;
        }

        @Override
        public void write(final DataOutput out) throws IOException {
            // does nothing
        }

        @Override
        public void readFields(final DataInput in) throws IOException {
            // does nothing
        }
    };

    if (scan.getFilter() == null) {
        scan.setFilter(deleteFilter);
        return scan;
    }

    FilterList wrappedFilter = new FilterList(Arrays.asList(deleteFilter, scan.getFilter()));
    scan.setFilter(wrappedFilter);
    return scan;
}