package com.hbase._181102.filter;
import java.io.IOException;
import java.util.Iterator;
import org.apache.commons.io.filefilter.PrefixFileFilter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
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.filter.BinaryComparator;
import org.apache.hadoop.hbase.filter.ByteArrayComparable;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.FamilyFilter;
import org.apache.hadoop.hbase.filter.PrefixFilter;
import org.apache.hadoop.hbase.filter.QualifierFilter;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
import org.apache.hadoop.hbase.filter.RowFilter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.SubstringComparator;
import org.apache.hadoop.hbase.util.Bytes;
import com.hbase._181101.util.HBasePrintUtil;
public class Filter_p1 {
static Configuration configuration =null;
private static final String ZK_CONNECT = "moc01:2181,moc02:2181,moc03:2181";
//静态块创建连接
static {
configuration=HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum", ZK_CONNECT);
}
@SuppressWarnings("deprecation")
public static void main(String[] args) throws IOException {
//指定需要查询的表
HTable hTable = new HTable(configuration, "user_info".getBytes());
Scan scan = new Scan();
/**
* 前缀过滤器:查出行键包含指定字串的行
*/
// PrefixFilter filter = new PrefixFilter("user".getBytes());
// scan.setFilter(filter);
/**
* 行过滤器:针对行键进行字符串的比较查询
*/
// BinaryComparator binaryComparator = new BinaryComparator(Bytes.toBytes("user0000"));
// RowFilter rowFilter = new RowFilter(CompareFilter.CompareOp.GREATER, binaryComparator);
// scan.setFilter(rowFilter);
/**
* 单值过滤器1:通过字符串的字典顺序比较查询值的行
*/
// SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("base_info".getBytes(), "name".getBytes(), CompareFilter.CompareOp.EQUAL, "zhangsan1".getBytes());
// scan.setFilter(singleColumnValueFilter);
/**
* 单值过滤器2:正则表达式对值进行判断查询行
*/
// ByteArrayComparable comparator = new RegexStringComparator("ba.");
// SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("base_info".getBytes(), "name".getBytes(), CompareFilter.CompareOp.EQUAL, comparator);
// scan.setFilter(singleColumnValueFilter);
/**
* 单值过滤器3:通过字串的包含与否的比较查询值的行
*/
// SubstringComparator substringComparator = new SubstringComparator("a");
// SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter("base_info".getBytes(), "name".getBytes(), CompareFilter.CompareOp.NOT_EQUAL, substringComparator);
// scan.setFilter(singleColumnValueFilter);
/**
* 列簇过滤器:通过列簇的字串比较,查询满足条件的所有信息
*/
// FamilyFilter familyFilter = new FamilyFilter(CompareFilter.CompareOp.EQUAL,
// new BinaryComparator("base_info".getBytes()));
// scan.setFilter(familyFilter);
/**
* 列过滤器:通过列的字串比较,查询满足条件的所有信息
*/
QualifierFilter qualifierFilter = new QualifierFilter(CompareFilter.CompareOp.EQUAL,
new BinaryComparator("name".getBytes()));
scan.setFilter(qualifierFilter);
// scan.addColumn("base_info".getBytes(),"name".getBytes());
// scan.setStartRow("user0000".getBytes());
// scan.setStopRow("user0000".getBytes());
ResultScanner scanner = hTable.getScanner(scan);
Iterator<Result> iterator = scanner.iterator();
while(iterator.hasNext()) {
Result next = iterator.next();
HBasePrintUtil.printResult(next);
}
}
}
Hbase过滤器_导图简介+代码
猜你喜欢
转载自blog.csdn.net/Wh1teMaster/article/details/83653164
今日推荐
周排行