`
lwx522
  • 浏览: 35964 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hbase客户端调用实例

 
阅读更多
package com.dis.test.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.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
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 HbaseClientTest {
	private static Configuration conf = HBaseConfiguration.create();
	private static String[] cfs = new String[] { "f1", "f2" };

	public static void main(String[] args) throws IOException {
		HbaseClientTest test = new HbaseClientTest();
		//test.createTable("test2", cfs);
		//test.deleteTable("test2");
		//test.writeRow("test2", new String[]{"f1", "f2"});
		//test.selectRow("test2", "rows1");
		//test.scaner("test2");
		test.deleteRow("test2", "rows1");
	}

	public void createTable(String tablename, String[] cfs) throws IOException {
		HBaseAdmin admin = new HBaseAdmin(conf);
		if (admin.tableExists(tablename)) {
			System.out.println("表已经存在");
			return;
		}
		HTableDescriptor desc = new HTableDescriptor(tablename);
		for (String f : cfs) {
			desc.addFamily(new HColumnDescriptor(f));
		}
		admin.createTable(desc);
		System.out.println("表创建成功");
	}


	/**
	 * 删除表操作 
	 * @param tablename
	 * @throws IOException
	 */
	public void deleteTable(String tablename) throws IOException {
		try {
			HBaseAdmin admin = new HBaseAdmin(conf);
			admin.disableTable(tablename);
			admin.deleteTable(tablename);
			System.out.println("表删除成功!");
		} catch (MasterNotRunningException e) {
			e.printStackTrace();
		} catch (ZooKeeperConnectionException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 插入一条数据
	 * @param tablename
	 * @param cfs
	 */
	public void writeRow(String tablename, String[] cfs) {
		try {
			HTable table = new HTable(conf, tablename);
			Put put = new Put(Bytes.toBytes("rows1"));
			for (int j = 0; j < cfs.length; j++) {
				put.add(Bytes.toBytes(cfs[j]),Bytes.toBytes(String.valueOf(1)),Bytes.toBytes("value_1"));
				table.put(put); 
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 删除一行数据
	 * @param tablename
	 * @param rowkey
	 * @throws IOException
	 */
	public void deleteRow(String tablename, String rowkey) throws IOException {
		HTable table = new HTable(conf, tablename); 
		List list = new ArrayList();
		Delete d1 = new Delete(rowkey.getBytes());
		list.add(d1);
		table.delete(list);
		System.out.println("删除行成功!");
	}
	
	/**
	 * 查找一行数据
	 * @param tablename
	 * @param rowKey
	 * @throws IOException
	 */
	public static void selectRow(String tablename, String rowKey)
		throws IOException {
		HTable table = new HTable(conf, tablename);
		Get g = new Get(rowKey.getBytes());
		Result rs = table.get(g);
		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()));
		}
	}
	
	/**
	 * 查询表中所有行
	 * @param tablename
	 */
	public void scaner(String tablename) {
		try {
			HTable table = new HTable(conf, tablename);
			Scan s = new Scan();
			ResultScanner rs = table.getScanner(s);
			for (Result r : rs) {
				KeyValue[] kv = r.raw();
				for (int i = 0; i < kv.length; i++) {
					System.out.print(new String(kv[i].getRow()) + "  ");
					System.out.print(new String(kv[i].getFamily()) + ":");
					System.out.print(new String(kv[i].getQualifier()) + "  ");
					System.out.print(kv[i].getTimestamp() + "  ");
					System.out.println(new String(kv[i].getValue()));
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

需要把hbase-site.xml文件复制到classpath下,依赖的jar如下,都可以在hbase的发布包中找到

 

 <classpathentry kind="lib" path="lib/commons-lang-2.5.jar"/>
 <classpathentry kind="lib" path="lib/hadoop-core-1.0.3.jar"/>
 <classpathentry kind="lib" path="lib/hbase-0.94.2.jar"/>
 <classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
 <classpathentry kind="lib" path="lib/log4j-1.2.16.jar"/>
 <classpathentry kind="lib" path="lib/slf4j-api-1.5.11.jar"/>
 <classpathentry kind="lib" path="lib/slf4j-jdk14-1.5.11.jar"/>
 <classpathentry kind="lib" path="lib/commons-configuration-1.9.jar"/>
 <classpathentry kind="lib" path="lib/zookeeper-3.4.3.jar"/>
 <classpathentry kind="lib" path="lib/protobuf-java-2.4.0a.jar"/>

 

<!--StartFragment -->
 
分享到:
评论

相关推荐

    hbase用于查询客户端工具

    通过Shell,你可以直接执行HBase的API调用,进行调试和测试。 2. **HBase REST Gateway**:REST(Representational State Transfer)接口使得非Java客户端能以HTTP协议与HBase通信,使用JSON格式交换数据。这使得...

    hbase-client

    HBase客户端主要负责建立与HBase集群的连接,执行如增删查改等基本操作,并提供丰富的API供开发者调用。HBase客户端可以是命令行界面(HBase Shell)、Java API、或者各种语言的客户端库,如Python、Ruby、PHP等。...

    HbaseJavaWeb实例

    Servlet接收到JSP发来的请求后,会根据请求类型调用相应的HBase API执行操作,然后将结果返回给JSP,最终呈现给用户。 5. **HBase API**: 为了在Java Web应用中操作HBase,我们需要使用HBase提供的Java API。这些...

    python 调用HBase的简单实例

    ### Python调用HBase的简单实例详解 #### 一、前言 在大数据处理领域,HBase 是一种基于Hadoop的分布式列存储系统,它能够高效地存储和管理大规模的数据集。Python作为一种广泛使用的编程语言,在与HBase交互时...

    java-hbase开发包

    1. **HBase客户端API**:这是Java-HBase开发包的核心,提供了一组Java接口和类,用于连接到HBase集群,创建表,插入、查询和更新数据。例如,`HTableInterface` 和 `HBaseAdmin` 接口,以及 `Put`、`Get` 和 `Scan` ...

    hbase 的java代码 集合 hbase 0.96

    在Java中,我们通过HBase客户端API与HBase交互,这些API包括了`HBaseAdmin`、`HTable`、`Put`、`Get`、`Scan`等核心类。 1. **连接HBase**:在Java代码中,我们使用`HBaseConfiguration.create()`来创建一个配置...

    HBase源码分析

    在HBase中,RPC机制是其主要的通信手段,它支持服务端和客户端之间的通信,并允许客户端调用远程服务端的方法。 在HBase的RPC框架中,我们可以看到它将通信的角色分配为客户端和服务端。客户端通过调用服务端提供的...

    java 通过thrift-0.9.1读取hbase表数据

    3. **编写Java代码**:使用生成的Java客户端代码,创建HBase连接,实例化Thrift客户端,然后调用其提供的方法来访问HBase表。通常包括以下步骤: - 连接Thrift服务器:通过`TSocket`或`TFramedTransport`建立与...

    C#使用Thrift2操作HBase数据库

    5. **实例化HBase服务**: 使用客户端连接到HBase,实例化服务代理。 6. **执行操作**: 通过服务代理调用HBase的API,例如`get`, `put`, `delete`, `scan`等方法,执行CRUD操作。 7. **处理结果**: 获取操作结果并...

    HBaseClientDemo

    本示例“HBaseClientDemo”将重点介绍如何利用Java API来操作HBase客户端,从而实现数据的存取。 首先,我们需要了解HBase的基本概念。HBase是构建在Hadoop文件系统(HDFS)之上,提供实时读写能力的非关系型数据库...

    hbase的java客户端api操作示例代码.zip

    在Java环境中,HBase提供了丰富的客户端API,使得开发者能够方便地进行数据的增删查改操作。本示例代码主要涵盖了以下几个核心知识点: 1. **HBase连接与配置** 在Java中操作HBase,首先需要创建一个`...

    java 连接远程hbase 数据库

    1. **引入依赖**: 标签中的"java habse"暗示我们需要Java的HBase客户端库。描述中提到的"所有jar"通常指的是这些库。在Java项目中,这些依赖可以通过Maven或Gradle等构建工具管理。例如,在Maven的`pom.xml`文件中,...

    spring-boot-starter-hbase自定义的spring-boot的hbasestarter

    同时,启动器会根据这些配置动态地创建并管理HBase的客户端实例,使得开发者可以在代码中直接注入HBaseTemplate或者HBaseAdmin,进行数据的增删改查。 此外,`spring-boot-starter-hbase`还提供了对HBase的查询语句...

    java操作Hbase之实现表的创建删除源码

    1. `hbase-client.jar`:这是HBase的客户端接口,包含了与HBase交互所需的类和方法。 2. `hbase-common.jar`:包含HBase通用功能,如数据序列化和配置管理。 3. `hbase-server.jar`:包含服务器端的组件,尽管是...

    Laravel开发-thrift-hbase-laravel

    现在我们可以创建一个HBase的门面或者服务类来封装Thrift客户端的调用,这样可以在应用的任何地方方便地使用HBase服务。例如,创建一个`app/Services/HBaseService.php`文件: ```php use Your\Path\To\Generated\...

    VS2017_Hbase thrift C++接口测试

    通过深入理解Thrift的工作原理,以及C++客户端的实现细节,开发者可以有效地构建自己的HBase客户端应用,满足各种业务需求。此外,分享这种知识和经验也有助于社区的共同进步,促进技术的普及和提升。

    hbase-0.94.7-security.tar.gz

    总结来说,`hbase-0.94.7-security.tar.gz`提供了一个完整的HBase分布式数据库实例,其中包含了安全增强功能,让用户能够在保证数据安全的前提下,充分利用HBase的大数据处理能力。理解和掌握HBase的这些核心概念和...

    hbase thrift python

    4. **编写Python客户端**:导入`gen-py`目录中的生成代码,实例化HBase服务的客户端,连接到运行Thrift服务的HBase节点。然后,你可以调用定义在IDL文件中的方法进行数据操作。 5. **配置HBase和Thrift**:在HBase...

Global site tag (gtag.js) - Google Analytics