- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
-
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.hbase.Cell;
- import org.apache.hadoop.hbase.CellUtil;
- import org.apache.hadoop.hbase.HBaseConfiguration;
- import org.apache.hadoop.hbase.TableName;
- import org.apache.hadoop.hbase.client.Admin;
- import org.apache.hadoop.hbase.client.Connection;
- import org.apache.hadoop.hbase.client.ConnectionFactory;
- import org.apache.hadoop.hbase.client.Get;
- import org.apache.hadoop.hbase.client.Result;
- import org.apache.hadoop.hbase.client.ResultScanner;
- import org.apache.hadoop.hbase.client.Scan;
- import org.apache.hadoop.hbase.client.Table;
- import org.apache.hadoop.hbase.filter.BinaryComparator;
- import org.apache.hadoop.hbase.filter.ColumnCountGetFilter;
- import org.apache.hadoop.hbase.filter.ColumnPaginationFilter;
- import org.apache.hadoop.hbase.filter.ColumnPrefixFilter;
- import org.apache.hadoop.hbase.filter.ColumnRangeFilter;
- import org.apache.hadoop.hbase.filter.DependentColumnFilter;
- import org.apache.hadoop.hbase.filter.FamilyFilter;
- import org.apache.hadoop.hbase.filter.Filter;
- import org.apache.hadoop.hbase.filter.FilterList;
- import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;
- import org.apache.hadoop.hbase.filter.FuzzyRowFilter;
- import org.apache.hadoop.hbase.filter.InclusiveStopFilter;
- import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
- import org.apache.hadoop.hbase.filter.MultipleColumnPrefixFilter;
- import org.apache.hadoop.hbase.filter.PageFilter;
- import org.apache.hadoop.hbase.filter.PrefixFilter;
- import org.apache.hadoop.hbase.filter.QualifierFilter;
- import org.apache.hadoop.hbase.filter.RandomRowFilter;
- import org.apache.hadoop.hbase.filter.RegexStringComparator;
- import org.apache.hadoop.hbase.filter.RowFilter;
- import org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter;
- import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
- import org.apache.hadoop.hbase.filter.SkipFilter;
- import org.apache.hadoop.hbase.filter.SubstringComparator;
- import org.apache.hadoop.hbase.filter.TimestampsFilter;
- import org.apache.hadoop.hbase.filter.ValueFilter;
- import org.apache.hadoop.hbase.filter.WhileMatchFilter;
- import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
- import org.apache.hadoop.hbase.util.Bytes;
- import org.apache.hadoop.hbase.util.Pair;
-
- public class HbaseUtils {
-
- public static Admin admin = null;
- public static Connection conn = null;
-
- public HbaseUtils() {
- Configuration conf = HBaseConfiguration.create();
- conf.set("hbase.zookeeper.quorum", "h71:2181");
- conf.set("hbase.rootdir", "hdfs://h71:9000/hbase");
- try {
- conn = ConnectionFactory.createConnection(conf);
- admin = conn.getAdmin();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) throws Exception {
- HbaseUtils hbase = new HbaseUtils();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
-
-
- public void FamilyFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new FamilyFilter(CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("grc")));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void QualifierFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new QualifierFilter(CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("grc")));
-
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void RowFilter(String tableName, String reg) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
-
- Filter filter = new RowFilter(CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes(reg)));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
-
-
-
- }
-
-
- public void PrefixFilter(String tableName, String reg) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new PrefixFilter(Bytes.toBytes("zhang"));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void HouZui(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new RowFilter(CompareOp.EQUAL,new RegexStringComparator(".*n01"));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void ColumnPrefixFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- byte[] prefix = Bytes.toBytes("ar");
- Filter filter = new ColumnPrefixFilter(prefix);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void MultipleColumnPrefixFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- byte[][] prefix = {Bytes.toBytes("ar"),Bytes.toBytes("ma")};
- Filter filter = new MultipleColumnPrefixFilter(prefix);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void columnCountGetFilter() throws Exception {
- Table table = conn.getTable(TableName.valueOf("scores"));
- Get get = new Get(Bytes.toBytes("zhangsan01"));
- get.setFilter(new ColumnCountGetFilter(2));
- Result result = table.get(get);
-
- System.out.println(result.size());
- }
-
-
- public void ColumnPaginationFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new ColumnPaginationFilter(2,1);
- scan.setFilter(filter);
- scan.addFamily(Bytes.toBytes("course"));
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void ColumnRangeFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new ColumnRangeFilter(Bytes.toBytes("a"),true, Bytes.toBytes("n"),true);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void DependentColumnFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new DependentColumnFilter(Bytes.toBytes("course"), Bytes.toBytes("art"),false,CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("90")));
-
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void FirstKeyOnlyFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new FirstKeyOnlyFilter();
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void FuzzyRowFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new FuzzyRowFilter( Arrays.asList(new Pair<byte[], byte[]>(Bytes.toBytes("zhangsan01"),
- new byte[] {0, 0, 0, 0 , 0, 0, 0, 0, 0, 1})));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void InclusiveStopFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new InclusiveStopFilter(Bytes.toBytes("zhangsan01"));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void KeyOnlyFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new KeyOnlyFilter(true);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void PageFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new PageFilter(2);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void RandomRowFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new RandomRowFilter((float)0.5);
-
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void SingleColumnValueFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
-
-
-
- Filter filter = new SingleColumnValueExcludeFilter(Bytes.toBytes("course"), Bytes.toBytes("art"), CompareOp.EQUAL,new SubstringComparator("9"));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void ValueFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new ValueFilter(CompareOp.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("102")));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void SkipFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new SkipFilter(new ValueFilter(CompareOp.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("102"))));
-
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void TimestampsFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
-
- List<Long> ls = new ArrayList<Long>();
- ls.add((long)1498003561726L);
- ls.add((long)1498003601365L);
-
- Filter filter = new TimestampsFilter(ls);
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void WhileMatchFilter(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- Scan scan = new Scan();
- Filter filter = new WhileMatchFilter(new ValueFilter(CompareOp.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("101"))));
- scan.setFilter(filter);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
-
-
- public void FilterList(String tableName) throws Exception {
- Table table = conn.getTable(TableName.valueOf(tableName));
- FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ONE);
- SingleColumnValueFilter filter1 = new SingleColumnValueFilter(Bytes.toBytes("course"), Bytes.toBytes("math"),CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("89")));
- list.addFilter(filter1);
- SingleColumnValueFilter filter2 = new SingleColumnValueFilter(Bytes.toBytes("course"), Bytes.toBytes("math"),CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("66")));
- list.addFilter(filter2);
- Scan scan = new Scan();
- scan.setFilter(list);
- ResultScanner scanner = table.getScanner(scan);
- for (Result r : scanner) {
- for (Cell cell : r.rawCells()) {
- System.out.println(
- "Rowkey-->"+Bytes.toString(r.getRow())+" "+
- "Familiy:Quilifier-->"+Bytes.toString(CellUtil.cloneQualifier(cell))+" "+
- "Value-->"+Bytes.toString(CellUtil.cloneValue(cell)));
- }
- }
- }
- }
上面有幾個過濾器在hbase shell中沒有找出,若是你們有找到的告訴我一聲,一塊兒進步。java
參考:
http://blog.csdn.net/blue__yeah/article/details/41040399
http://blog.csdn.net/liangtingac/article/details/40078637
http://blog.csdn.net/u010967382/article/details/37653177
http://blog.csdn.net/sparkexpert/article/details/51942354正則表達式
from:https://blog.csdn.net/m0_37739193/article/details/73615016shell