java操作hbase例子

hbase安装方法请参考:hbase-0.94安装方法详解

hbase常用的shell命令请参考:hbase常用的shell命令例子

java操作hbase,在eclipse中创建一个java项目,将hbase安装文件根目录的jar包和lib目录下jar包导入项目,然后就可以编写java代码操作hbase了。下面代码给出来一个简单的示例

/**
 * @date 2015-07-23 21:28:10
 * @author sgl
 */
package com.songguoliang.hbase;

import java.io.IOException;
import java.util.ArrayList;
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.KeyValue;
import org.apache.hadoop.hbase.client.Delete;
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.util.Bytes;

public class HBaseTest {
	//声明静态配置,HBaseConfiguration
	private static Configuration conf=null;
	static{
		conf=HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", "sdw1,sdw2");
	}
	/**
	 * 创建一个表
	 * @date 2015-07-23 21:44:32
	 * @author sgl
	 * @param tableName 表名
	 * @param columnFamilys 列族
	 * @throws IOException
	 */
	public static void createTable(String tableName,String[]columnFamilys) throws IOException{
		HBaseAdmin admin =new HBaseAdmin(conf);
		if (admin.tableExists(tableName)) {
			System.out.println("table already exists!");
		}else{
			HTableDescriptor tableDesc=new HTableDescriptor(tableName);
			for(int i=0;i<columnFamilys.length;i++){
				tableDesc.addFamily(new HColumnDescriptor(columnFamilys[i]));
			}
			admin.createTable(tableDesc);
			System.out.println("create table "+tableName+" success!");
		}

	}
	/**
	 * 添加一条记录
	 * @date 2015-07-23 22:16:30
	 * @author sgl
	 * @param tableName 表名
	 * @param rowKey 行健
	 * @param family 列族
	 * @param qualifier 限定符
	 * @param value 值
	 * @throws IOException
	 */
	public static void addRecord(String tableName,String rowKey,String family,String qualifier,String value) throws IOException{
		HTable table =new HTable(conf, tableName);
		Put put=new Put(Bytes.toBytes(rowKey));
		put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));
		table.put(put);
		System.out.println("insert record "+rowKey+" to table "+tableName+" success");

	}
	/**
	 * 删除一行记录
	 * @date 2015-07-23 22:17:53
	 * @author sgl
	 * @param tableName 表名
	 * @param rowKey 行健
	 * @throws IOException
	 */
	public static void deleteRecord(String tableName,String rowKey) throws IOException{
		HTable table=new HTable(conf, tableName);
		List<Delete>list=new ArrayList<Delete>();
		Delete delete=new Delete(rowKey.getBytes());
		list.add(delete);
		table.delete(list);
		System.out.println("delete record "+ rowKey+" success!");

	}
	/**
	 * 获取一行记录
	 * @date 2015-07-23 22:21:33
	 * @author sgl
	 * @param tableName 表名
	 * @param rowKey 行健
	 * @throws IOException
	 */
	public static void getOneRecord(String tableName,String rowKey) throws IOException{
		HTable table=new HTable(conf, tableName);
		Get get=new Get(rowKey.getBytes());
		Result rs=table.get(get);
		for(KeyValue kv:rs.raw()){
			System.out.print(new String(kv.getRow()) + " " );
            System.out.print(new String(kv.getFamily()) + ":" );
            System.out.print(new String(kv.getQualifier()) + " " );
            System.out.print(kv.getTimestamp() + " " );
            System.out.println(new String(kv.getValue()));
		}

	}
	/**
	 * 获取所有数据
	 * @date 2015-07-23 22:26:19
	 * @author sgl
	 * @param tableName 表名
	 * @throws IOException
	 */
	public static void getAllRecord(String tableName) throws IOException{
		HTable table=new HTable(conf, tableName);
		Scan scan=new Scan();
		ResultScanner scanner=table.getScanner(scan);
		for(Result result:scanner){
			for(KeyValue kv:result.raw()){
				System.out.print(new String(kv.getRow()) + " ");
                System.out.print(new String(kv.getFamily()) + ":");
                System.out.print(new String(kv.getQualifier()) + " ");
                System.out.print(kv.getTimestamp() + " ");
                System.out.println(new String(kv.getValue()));
			}
		}

	}
	/**
	 * 删除一个表
	 * @date 2015-07-23 22:29:35
	 * @author sgl
	 * @param tableName 表名
	 * @throws IOException
	 */
	public static void deleteTable(String tableName) throws IOException{
		HBaseAdmin admin=new HBaseAdmin(conf);
		admin.disableTable(tableName);
		admin.deleteTable(tableName);
		System.out.println("delete table "+tableName+" success!");

	}

	public static void main(String[] args) {
		try {
			String tableName="scores";
			String[]columnFamilys={"grade","course"};
			HBaseTest.createTable(tableName, columnFamilys);

			HBaseTest.addRecord(tableName, "sgl", "grade", "", "5");
			HBaseTest.addRecord(tableName, "sgl", "course", "", "90");
			HBaseTest.addRecord(tableName, "sgl", "course", "math", "97");
			HBaseTest.addRecord(tableName, "sgl", "course", "art", "87");
			HBaseTest.addRecord(tableName, "guoguo", "grade", "", "4");
			HBaseTest.addRecord(tableName, "guoguo", "course", "math", "89");

			System.out.println("********get one record*********");
			HBaseTest.getOneRecord(tableName, "sgl");

			System.out.println("********get all record*********");
			HBaseTest.getAllRecord(tableName);

			System.out.println("********delete one record*********");
			HBaseTest.deleteRecord(tableName, "guoguo");
			HBaseTest.getAllRecord(tableName);

			System.out.println("********delete table*********");
			HBaseTest.deleteTable(tableName);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

版权声明:本文为博主原创文章,转载请注明本文链接。

时间: 2024-10-14 20:42:05

java操作hbase例子的相关文章

Hadoop之——Java操作HBase

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46463617 不多说,直接上代码,大家都懂得 package hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbas

Java操作hbase总结

用过以后,总得写个总结,不然,就忘喽. 一.寻找操作的jar包. java操作hbase,首先要考虑到使用hbase的jar包. 因为咱装的是CDH5,比较方便,使用SecureCRT工具,远程连接到你安装的那台服务器上. jar包的存放位置在/opt/cloudera/parcels/CDH/lib/hbase,找到,下载下来. 在当前路径下,有一个lib包,里面是支持hbase的hadoop的jar包,根据需求,可以下载下来. 二.找一个API文档当成手册,哪里不会查哪里 百度分享,http

java操作Hbase实例

所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apach

java操作hbase样例

hbase安装方法请參考:hbase-0.94安装方法具体解释 hbase经常使用的shell命令请參考:hbase经常使用的shell命令样例 java操作hbase,在eclipse中创建一个java项目.将hbase安装文件根文件夹的jar包和lib文件夹下jar包导入项目,然后就能够编写java代码操作hbase了. 以下代码给出来一个简单的演示样例 /** * @date 2015-07-23 21:28:10 * @author sgl */ package com.songguol

新浪微博数据解析与java操作Hbase实例

之前发过一篇开发新浪微博的文章,对于大家比较感兴趣的内容之一便是如何解析新浪微博的JSON. 其实一开始的时候,也遇过一些挫折,比如直接用JsonArray和JsonObject去解析JSON内容的话,是解析不了的. 因为JSON的格式比较固定,像新浪微博返回的JSON内容则是多了一个中括号及statues标签,如下: { "statuses": [ { "created_at": "Tue May 31 17:46:55 +0800 2011"

Java 操作Hbase 完整例子

开发工具:Eclipse,三步1.新建一个项目2.把hbase安装下的lib的文件都拷贝进来3.把lib目录下jar文件都引入4.lib下的client-facing-thirdparty 目录下的jar也都引入看图 package com.yue; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.;import org.apache.hadoop.hbase.client.; import j

HBase(2) Java 操作 HBase 教程

目录 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 FAQ 参考文档 一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法. 那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了. 所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API. 我们可以通过 hbase-client 来实现 HBase 数据库的操作. 所以,这次主要

Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tests.jar以及Hbase资源包中lib目录下的所有jar包 2.主要程序 Java代码 package com.wujintao.hbase.test; import java.io.IOException; import java.util.ArrayList; import java.util

java操作hbase数据库

package com.wujintao.hbase.test; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDesc