热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

HbaseFamilyFilter

FamilyFilter用于过滤Familypackagecom.fatkun.filter;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg.apache.hadoop.hbase.HColumnDescriptor;importorg.apac

FamilyFilter 用于过滤Family package com.fatkun.filter;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apac

FamilyFilter 用于过滤Family

package com.fatkun.filter;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
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.CompareFilter;
import org.apache.hadoop.hbase.filter.FamilyFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.util.Bytes;
public class TestHbaseFamilyFilter {
	String tableName = "test_family_filter";
	Configuration cOnfig= HBaseConfiguration.create();
	/**
	 * 部分代码来自hbase权威指南
	 * @throws IOException
	 */
	public void testRowFilter() throws IOException {
		HTable table = new HTable(config, tableName);
		Scan scan = new Scan();
		System.out.println("只列出小于data2的列");
		Filter filter1 = new FamilyFilter(CompareFilter.CompareOp.LESS, 
			      new BinaryComparator(Bytes.toBytes("data2")));
		scan.setFilter(filter1);
		ResultScanner scanner1 = table.getScanner(scan);
		for (Result res : scanner1) {
			System.out.println(res);
		}
		scanner1.close();
		System.out.println("get也可以设置filter");
		Get get1 = new Get(Bytes.toBytes("row005"));
	    get1.setFilter(filter1);
	    Result result1 = table.get(get1); 
	    System.out.println("Result of get(): " + result1);
	}
	/**
	 * 初始化数据
	 */
	public void init() {
		// 创建表和初始化数据
		try {
			HBaseAdmin admin = new HBaseAdmin(config);
			if (!admin.tableExists(tableName)) {
				HTableDescriptor htd = new HTableDescriptor(tableName);
				HColumnDescriptor hcd1 = new HColumnDescriptor("data1");
				htd.addFamily(hcd1);
				HColumnDescriptor hcd2 = new HColumnDescriptor("data2");
				htd.addFamily(hcd2);
				HColumnDescriptor hcd3 = new HColumnDescriptor("data3");
				htd.addFamily(hcd3);
				admin.createTable(htd);
			}
			HTable table = new HTable(config, tableName);
			table.setAutoFlush(false);
			int count = 50;
			for &#40;int i = 1; i <= count; ++i&#41; &#123;
				Put p = new Put&#40;String.format&#40;"row%03d", i&#41;.getBytes&#40;&#41;&#41;;
				p.add&#40;"data1".getBytes&#40;&#41;, String.format&#40;"col%01d", i % 10&#41;
						.getBytes&#40;&#41;, String.format&#40;"data1%03d", i&#41;.getBytes&#40;&#41;&#41;;
				p.add&#40;"data2".getBytes&#40;&#41;, String.format&#40;"col%01d", i % 10&#41;
						.getBytes&#40;&#41;, String.format&#40;"data2%03d", i&#41;.getBytes&#40;&#41;&#41;;
				p.add&#40;"data3".getBytes&#40;&#41;, String.format&#40;"col%01d", i % 10&#41;
						.getBytes&#40;&#41;, String.format&#40;"data3%03d", i&#41;.getBytes&#40;&#41;&#41;;
				table.put&#40;p&#41;;
			&#125;
			table.close&#40;&#41;;
		&#125; catch &#40;IOException e&#41; &#123;
			e.printStackTrace&#40;&#41;;
		&#125;
	&#125;
	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main&#40;String&#91;&#93; args&#41; throws IOException &#123;
		TestHbaseFamilyFilter test = new TestHbaseFamilyFilter&#40;&#41;;
		test.init&#40;&#41;;
		test.testRowFilter&#40;&#41;;
	&#125;
&#125;
推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文整理了Java中org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc.getTypeInfo()方法的一些代码示例,展 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • importorg.apache.hadoop.hdfs.DistributedFileSystem;导入方法依赖的package包类privatevoidtestHSyncOpe ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 大数据项目为什么失败,2017年将有何不同
    大,数据,项目,为什么,失败,2017 ... [详细]
  • hadoop1.2.1文档中这样写:Nowcheckthatyoucansshtothelocalhostwithoutapassphrase:$sshlocalhostIfyou ... [详细]
  • 11月26日,由中国计算机协会(CCF)主办,CCF大数据专家委员会协办,CSDN承办的Hadoop与大数据技术大会(Hadoop&BigDataTechnology ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
author-avatar
爱lovely壮壮_366
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有