`
xiang37
  • 浏览: 428295 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Hbase相关增删改查操作示例

 
阅读更多

Hbase1.3.1基于Hadoop2.7.1上,相关基本操作代码示例


package com.xiva.cloud.study.hbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.NamespaceDescriptor;
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.Table;

/**
 * Hbase相关操作示例
 */
public class HbaseUtils 
{
    public static void main( String[] args )
    {
        try
        {
//            createTable();
//            putData();
//            getData();
//            createNamespace();
//            createTableUseNamespace();
            deleteData();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    
    public static void createNamespace() throws Exception
    {
        Connection conn = getConnection();
        
        Admin admin = conn.getAdmin();
        
        NamespaceDescriptor descriptor = NamespaceDescriptor.create("ajbzns").build();
        
        admin.createNamespace(descriptor);
        
        admin.close();
    }
    
    public static void deleteData() throws Exception
    {
        Table table = getTable("AJ_RECORD");
        Delete delete = new Delete("r000001".getBytes());
        table.delete(delete );
        
        table.close();
    }
    
    public static void getData() throws Exception
    {
        Table table = getTable("AJ_RECORD");
        Get get = new Get("r000001".getBytes());
        
        Result result = table.get(get);
        
        /*byte[] byteVals = result.getValue("bztag".getBytes(), "afdz".getBytes());
        System.out.println(new String(byteVals));*/
        
        for (Cell cell : result.rawCells())
        {
            System.out.print(new String(CellUtil.cloneQualifier(cell)) + ":");
            System.out.println(new String(CellUtil.cloneValue(cell)));
        }
        
        table.close();
    }
    
    public static void putData() throws Exception
    {
        Table table = getTable("AJ_RECORD");
        Put put = new Put("r000001".getBytes());
        put.addColumn("bztag".getBytes(), "afdz".getBytes(), "深圳市南山区桃园地铁站".getBytes());
        put.addColumn("bztag".getBytes(), "dqwp".getBytes(), "苹果手机".getBytes());
        
        put.addColumn("baseinfo".getBytes(), "ajbh".getBytes(), "A4403053400002017080500003".getBytes());
        put.addColumn("baseinfo".getBytes(), "ajmc".getBytes(), "苹果手机***".getBytes());
        
        table.put(put);
        
        table.close();
    }
    
    public static Table getTable(String tableName) throws Exception
    {
        Connection conn = getConnection();
        
        Table table = conn.getTable(TableName.valueOf(tableName));
        
        return table;
    }

    public static Connection getConnection() throws IOException
    {
        // create config
        Configuration config = HBaseConfiguration.create();
        config.addResource("hbase-site.xml");
        
        Connection conn = ConnectionFactory.createConnection(config);
        return conn;
    }
    
    public static void createTable() throws Exception
    {
        Connection conn = getConnection();
        
        // get a admin from connection
        Admin admin = conn.getAdmin();
        TableName ajbzTable = TableName.valueOf("AJ_RECORD");
        boolean exist = admin.tableExists(ajbzTable);
        
        // 判断表是否存在
        if (exist)
        {
            admin.disableTable(ajbzTable);
            admin.deleteTable(ajbzTable);
        }
        
        HTableDescriptor desc = new HTableDescriptor(ajbzTable);
        desc.addFamily(new HColumnDescriptor("bztag"));
        desc.addFamily(new HColumnDescriptor("baseinfo"));
        
        admin.createTable(desc);
        
        admin.close();
    }
    
    public static void createTableUseNamespace() throws Exception
    {
        Connection conn = getConnection();
        
        // get a admin from connection
        Admin admin = conn.getAdmin();
        TableName ajbzTable = TableName.valueOf("ajbzns", "AJ_RECORD_BANK");
        boolean exist = admin.tableExists(ajbzTable);
        
        // 判断表是否存在
        if (exist)
        {
            admin.disableTable(ajbzTable);
            admin.deleteTable(ajbzTable);
        }
        
        HTableDescriptor desc = new HTableDescriptor(ajbzTable);
        desc.addFamily(new HColumnDescriptor("bztag"));
        desc.addFamily(new HColumnDescriptor("baseinfo"));
        
        admin.createTable(desc);
        
        admin.close();
    }
}


除了引用下面的POM文件,还需要在工程中导入hbase-site.xml文件,否则需要在config变量中指定zk地址或者在环境变量中指定。

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xiva.cloud.study</groupId>
  <artifactId>hbase</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>hbase</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <hadoop.version>2.7.1</hadoop.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>1.3.1</version>
    </dependency>
    
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-auth</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-core</artifactId>
      <version>${hadoop.version}</version>
    </dependency>

    <dependency>
      <groupId>jdk.tools</groupId>
      <artifactId>jdk.tools</artifactId>
      <version>1.7</version>
      <scope>system</scope>
      <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

 

 

分享到:
评论

相关推荐

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

    Java 操作 Hbase 进行建表、删表以及对数据进行增删改查 一、Hbase 简介 Hbase 是一个开源的、分布式的、基于 column-family 的 NoSQL 数据库。它是基于 Hadoop 的,使用 HDFS 作为其存储层。Hbase 提供了高性能、...

    java链接并对hbase进行增删改查操作的实例代码(含批量插入,范围查询等,并包含所需jar包)

    Java链接HBase进行增删改查操作是大数据领域常见的任务,尤其在处理大规模分布式存储时。HBase,作为Apache Hadoop生态系统的一部分,是一个基于列族的NoSQL数据库,提供了高性能、高可扩展性的数据存储解决方案。这...

    HBase入门:命名空间、建表、增删改查

    示例:`hbase&gt; alter_namespace 'ns', {METHOD =&gt; 'set', 'PROPERTY_NAME' =&gt; 'PROPERTY_VALUE'}`,这里的`PROPERTY_NAME`和`PROPERTY_VALUE`分别代表你要修改的属性名和值。 ### 表管理 表是HBase中的基本数据...

    hbase的shell操作

    它支持对HBase表进行增删改查等一系列操作,对于开发人员和系统管理员来说是非常实用的工具之一。本文将基于提供的描述和部分代码示例,深入讲解HBase Shell的操作方法。 ### 创建表 在HBase中,表由行键(Row Key...

    thrift操作Hbase数据库

    在本项目中,我们将关注如何使用C#语言通过Thrift2来操作Hbase数据库,实现数据的增、删、改、查(CRUD)功能。 1. **Thrift2与Hbase的交互** Thrift2提供了一种灵活的方式与Hbase进行交互。首先,我们需要在Hbase...

    hbase-mybatis-demo.rar

    3. **Mapper接口**:MybatisPlus中的Mapper接口将定义SQL操作,如增删改查。 4. **Service层**:这是业务逻辑的主要实现部分,调用Mapper接口进行数据操作。 5. **Controller层**:定义RESTful API,接收HTTP请求并...

    实验三:熟悉常用的HBase操作.docx.zip

    3. **数据操作**:演示如何使用HBase Shell进行增删改查操作,如`put`、`get`、`scan`、`delete`等命令。 4. **Java API**:深入介绍如何通过Java编程来与HBase交互,包括连接HBase、创建表、写入和读取数据的示例...

    使用Java对Hbase操作总结及示例代码

    HTableDescriptor在HTableDescriptor中,建立了一个表结构,HTableDescriptor封装表格对象,对表格的增删改查操作主要通过它来完成。HTableDescriptor可以通过HTableDescriptor(TableName.valueOf(“表名”))方法...

    hbase详解,apache_hbase_reference_guide

    HBase提供了简单的编程模型,通过API可以对数据进行增删改查的操作。 《Apache HBase Reference Guide》是Apache HBase官方的使用指南,详细解释了如何安装、配置和使用HBase。在这份指南中,用户可以了解到HBase的...

    基于注解的hbase orm小工具,目前比较简单

    然后,我们可以利用ORM工具进行数据的增删改查: ```java // 创建 User user = new User(); user.setId("1"); user.setName("张三"); user.setEmail("zhangsan@example.com"); orm.save(user); // 查询 User ...

    Hadoop与HBase自学笔记

    - **DML**(Data Manipulation Language):用于数据的增删改查操作。 - **HBase命令行工具**:提供了丰富的命令来操作HBase表。 #### 五、Eclipse下开发HBase - **安装HBase插件**:使用Eclipse Marketplace...

    使用Phoenix通过jdbc连接hbase

    这篇文档将详细介绍如何使用Phoenix通过JDBC(Java Database Connectivity)连接到HBase数据库,并进行相关的数据操作,如表的创建、删除以及数据的增删改查。 首先,理解Phoenix的作用至关重要。Phoenix提供了SQL...

    hadoop及hbase部署与应用

    - Hbase提供了Java API,可以用于在Java应用程序中直接操作Hbase数据库,进行数据的增删查改操作。 - 例如,使用`HBaseAdmin`类创建和管理表,使用`Table`对象进行数据的put和get,以及`Scan`对象进行表的扫描。 ...

    hbase-0.20.0.tar.gz

    学习HBase 0.20.0,你需要了解其基本架构、数据模型、API使用以及如何进行数据的增删改查操作。同时,掌握如何配置和优化HBase以适应不同的应用场景也非常重要。随着HBase的不断发展,更高级的功能如 Coprocessors、...

    java访问Hbase数据库Demo

    本示例将通过Java API详细介绍如何进行Hbase的基本操作,包括增、删、改、查以及创建表。 首先,我们需要在Java项目中引入Hbase的相关依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;...

    spingboot+phoenix+mybatis+druid示例

    在SpringBoot项目中,可以通过Phoenix的JDBC驱动与HBase进行交互,进行数据的增删改查操作。 【MyBatis】 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...

    hbase的表结构及客户端依赖.zip

    4. Java API:HBase的主要编程接口是Java API,提供了Table、Get、Put、Scan等对象,方便进行增删改查操作。同时,HBase也支持非Java的客户端,如Python、C++、Ruby等,这些客户端通常通过Thrift或REST接口与HBase...

Global site tag (gtag.js) - Google Analytics