热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HBase学习之路(八)HBase的API操作

HBaseAPI操作表和数据packageHomeWork1;importjava.io.IOException;importjava.util.List;importo

HBase API操作表和数据

package HomeWork1;

import java.io.IOException;
import java.util.List;

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.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.Delete;
import org.apache.hadoop.hbase.client.Get;
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.client.Table;
import org.apache.hadoop.hbase.util.Bytes;

import iter.HBaseDemoInterface;
import util.HBasePrintUtil;

public class Work1 implements HBaseDemoInterface{

	private static final String cOnnectkey= "hbase.zookeeper.quorum";
	private static final String cOnnectvalue= "potter2:2181,potter3:2181,potter4:2181,potter5:2181,";
	static Configuration cOnf= null;
	private static Admin admin = null;
	private static Connection con = null;
	static{
		cOnf= HBaseConfiguration.create();
		conf.set(connectkey, connectvalue);
		try {
			con = ConnectionFactory.createConnection(conf);
			admin = con.getAdmin();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// 查询所有表
	@Override
	public void getAllTables() throws Exception {
		
		HTableDescriptor[] listTables = admin.listTables();
		for(HTableDescriptor htd : listTables){
			
			System.out.print(htd.getTableName()+"\t");
		}
	}

	// 创建表,传参,表名和列簇的名字
	@Override
	public void createTable(String tableName, String[] family) throws Exception {
		TableName tn = TableName.valueOf(tableName);
		HTableDescriptor htd = new HTableDescriptor(tn);
		
		for (int i = 0; i  putList) throws Exception {
		
		Table table = con.getTable(TableName.valueOf("user_info"));
		Put put1 = new Put("rk07".getBytes());
		put1.addColumn("base_info".getBytes(), "kk1".getBytes(), "pp1".getBytes());
		Put put2 = new Put("rk077".getBytes());
		put2.addColumn("base_info".getBytes(), "kk2".getBytes(), "pp2".getBytes());
		
		putList.add(put1);
		putList.add(put2);
		table.put(putList);
		System.out.println("成功");
		
	}
	// 根据rowkey查询数据
	@Override
	public Result getResult(String tableName, String rowKey) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Get get = new Get(Bytes.toBytes(rowKey));
//		System.out.println(get+"0000");
		Result result = table.get(get);
//		System.out.println(result+"2222222222222");
		HBasePrintUtil.printResult(result);
		
		
//		Cell[] rawCells = result.rawCells();
		
//		for(Cell cell : rawCells){
//			System.out.println(cell.toString());
//			System.out.println(cell.getF);
//		}
		
//		Scan scan = new Scan();
//		HTableDescriptor htd = new HTableDescriptor(tn);
		
		
		return result;
	}
	// 根据rowkey查询数据
	@Override
	public Result getResult(String tableName, String rowKey, String familyName) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Get get = new Get(Bytes.toBytes(rowKey));
		get.addFamily(Bytes.toBytes(familyName));
		Result result = table.get(get);
		HBasePrintUtil.printResult(result);
		
		return null;
	}

	@Override
	public Result getResult(String tableName, String rowKey, String familyName, String columnName) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Get get = new Get(Bytes.toBytes(rowKey));
		get.addFamily(Bytes.toBytes(familyName));
		get.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName));
		
		Result result = table.get(get);
		HBasePrintUtil.printResult(result);
		
		return null;
	}
	// 查询指定version
	@Override
	public Result getResultByVersion(String tableName, String rowKey, String familyName, 
			String columnName, int versions) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn );
		Get get = new Get(Bytes.toBytes(rowKey));
		get.addFamily(Bytes.toBytes(familyName));
		get.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName));
		get.setMaxVersions(versions);
		Result result = table.get(get);
		HBasePrintUtil.printResult(result);
		return null;
	}
	// scan全表数据
	@Override
	public ResultScanner getResultScann(String tableName) throws Exception {
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		
		Scan scan = new Scan();
		ResultScanner scanner = table.getScanner(scan);
		HBasePrintUtil.printResultScanner(scanner);
		return null;
	}

	
	@Override
	public ResultScanner getResultScann(String tableName, Scan scan) throws Exception {
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		ResultScanner scanner = table.getScanner(scan);
		HBasePrintUtil.printResultScanner(scanner);
		return null;
	}
	// 删除数据(指定的列)
	@Override
	public void deleteColumn(String tableName, String rowKey) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Delete delete = new Delete(Bytes.toBytes(rowKey));
		table.delete(delete);
		System.out.println("删除成功");
	}
	// 删除数据(指定的列)
	@Override
	public void deleteColumn(String tableName, String rowKey, String falilyName) throws Exception {
		
		TableName tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Delete delete = new Delete(Bytes.toBytes(rowKey));
		delete.addFamily(Bytes.toBytes(falilyName));
		table.delete(delete);
		System.out.println("删除成功");
		
	}
	// 删除数据(指定的列)
	@Override
	public void deleteColumn(String tableName, String rowKey, String falilyName, String columnName) throws Exception {
		TableName  tn = TableName.valueOf(tableName);
		Table table = con.getTable(tn);
		Delete delete = new Delete(Bytes.toBytes(rowKey));
		delete.addColumn(Bytes.toBytes(falilyName), Bytes.toBytes(columnName));
		table.delete(delete);
		System.out.println("删除成功");
	}


}

测试类:

package HomeWork1;

import java.util.ArrayList;
import java.util.List;

import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Scan;
import org.yecht.Data.Str;

public class Test1 {

	public static void main(String[] args) throws Exception {
		
		
		
		Work1 work1 = new Work1();
		work1.getAllTables();
		
		/*String tableName = "blog";
		String[] family = {"article","author"};
		work1.createTable(tableName, family);*/
		
//		work1.descTable("user_info");
		
//		work1.existTable("aaa");
		
//		work1.disableTable("blog");
//		work1.dropTable("blog");
		
//		work1.modifyTable("stu");
		/*String[] addColumn = {"xxxx","xxxx"};
		String[] removeColumn = {"xxx"};
		work1.modifyTable("user_info", addColumn, removeColumn);*/
	
		/*String[] value = { "yyy","yyx"};
		String[] column = {"base_info","zzz"};
		work1.addData("user_info", "rk055", column,value);*/
				
		/*String rowKey = "rk022";
		String familyName = "extra_info";
		String columnName = "qqqqq";
		String value = "lllll";
		work1.putData("user_info", rowKey, familyName, columnName, value);
	*/
		
//		work1.putData("user_info", "rk08", "base_info", "ttt", "ooo", 999);
		
		
//		work1.putData(new Put("rk09".getBytes()));
		/*List pList = new ArrayList<>();
		work1.putData(pList);*/
	
		
//		work1.getResult("user_info", "zhangsan_20150701_0004");
		
//		work1.getResult("user_info", "zhangsan_20150701_0004", "base_info");
		
//		work1.getResult("user_info", "zhangsan_20150701_0004", "base_info","age");
		
		
//		work1.getResultByVersion("user_info", "zhangsan_20150701_0004", "base_info","age",4);
		
//		work1.getResultScann("user_info");
		
		/*Scan scan = new Scan();
		work1.getResultScann("user_info",scan);*/
		
//		work1.deleteColumn("user_info", "rk01");
		
//		work1.deleteColumn("user_info", "zhangsan_20150701_0001","base_info");
		
//		work1.deleteColumn("user_info", "rk07","base_info","kk1");
		
	}
}

推荐阅读
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • hadoop1.2.1文档中这样写:Nowcheckthatyoucansshtothelocalhostwithoutapassphrase:$sshlocalhostIfyou ... [详细]
author-avatar
woainimamamamama
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有