`

HBase之Java API

阅读更多

Java API应用

  1. Configuration

    在使用Java API时,Client端需要知道HBase的配置环境,如存储地址,zookeeper等信息。这些信息通过Configuration对象来封装,可通过如下代码构建该对象:

    Configuration config=HBaseConfiguration.create();

    在调用HBaseConfiguration.create()方法时,HBase首先会在classpath下查找hbase-site.xml文件,将里面的信息解析出来封装到Configuration对象中,如果hbase-site.xml文件不存在,则使用默认的hbase-core.xml文件。

    除了将hbase-site.xml放到classpath下,开发人员还可通过config.set(name, value)方法来手工构建Configuration对象:

    Configuration.set(String name, String value);

  2. HBaseAdmin

    HBaseAdmin用于创建数据库表格,并管理表格的元数据信息,通过如下方法构建:

    HBaseAdmin admin=new HBaseAdmin(config);

    常用方法如列表所示:

    Table 1. HBaseAdmin常用方法

    方法名 方法描述
    addColumn(tableName,column) 为表格添加栏位
    deleteColumn(tableName,column) 删除指定栏位
    balanceSwitch(boolean) 是否启用负载均衡
    createTable(HTableDescriptor desc) 创建表格
    deleteTable(tableName) 删除表格
    tableExists(tableName) 判断表格是否存在

    Example 1. 创建表格

    HBaseAdmin admin=new HBaseAdmin(config);  
    If(!admin.tableExists(“test”)){
        HTableDescriptor tableDesc=new HTableDescriptor(“test”);1
        HColumnDescriptor cf=new HColumnDescriptor(“cf”);
        tableDesc.addFamily(cf);2
        admin.createTable(tableDesc);
    }					
    					

    1

    指定表格名称为test。

    2

    为表格创建ColumnFamily,名称为cf。

  3. HTable

    在HBase中,HTable封装表格对象,对表格的增删改查操作主要通过它来完成,构造方法如下:

    HTable table=new HTable(config,tableName);

    在构建多个HTable对象时,HBase推荐所有的HTable使用同一个Configuration。这样,HTable之间便可共享HConnection对象、zookeeper信息以及Region地址的缓存信息。

    Example 2. Get操作

    Get get=new Get(rowKey);
    Result res=table.get(get);
    				

    Example 3. Put操作

    Put put=new Put(rowKey);
    put.add(columnFamily,column,value);
    table.put(put);
    注:在HBase中,实体的新增和更新都是通过Put操作来实现。
    				

    Example 4. Delete操作

    Delete delete=new Delete();
    table.delete(delete);
    				

    Example 5. Scan操作

    Scan scan=new Scan( );  
    scan.addColumn(columnFamily,column);1
    scan.setReversed(false); 2
    scan.setBatch(10); 3
    scan.setIsolationLevel(IsolationLevel.READ_COMMITTED); 4
    scan.setRaw(false); 5
    scan.setSmall(true); 6
    SingleColumnValueFilter filter=new SingleColumnValueFilter(  
            columnFamily,column,7  
            CompareOp.EQUAL,value8  
    );
    scan.setFilter(filter);  
    ResultScanner scanner=table.getScanner(scan);9
    Iterator<Result> res=scanner.iterator( );10
    					

    1

    指定查询要返回的column。

    2

    是否为倒叙查询,可用于获取最后一条记录。

    3

    每次执行ResultScanner.next()返回多少条记录。

    4

    设置隔离级别,如果参数值为READ_UNCOMMITTED表示未提交的数据也一并读取,此时违背了读一致性(具体参考读写一致性章节)。

    5

    是否返回已经被删除的记录。

    6

    通常情况下,如果要检索的数据只存在于一个Block中,认为其是smallScan,这时将采用pread方式查询,而不是seek+read。

    7

    指定要过滤的column。

    8

    指定过滤条件。

    9

    执行扫描查找。

    10

    返回查询遍历器。


    注:更多的过滤器信息请查看org.apache.hadoop.hbase.filter包。

    Example 6. 遍历Result结果集

    NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> maps = res.getMap();
    for(byte[] family:maps.keySet()){ 1
        System.out.println("columnFamily:"+new String(family));
        for(byte[] column:maps.get(family).keySet()){ 2
            System.out.print("column:"+new String(column)+"; ");
            for(Long time:maps.get(family).get(column).keySet()){ 3
                System.out.println("value:"+new String(maps.get(family).get(column).get(time)));
            }
        }
    }
    					

    1

    结果集用Map封装,最外层的key为columnFamily;

    2

    第二层key为column;

    3

    第三层key为时间戳信息,value为column值。

     

    http://blog.csdn.net/javaman_chen/article/details/7220216

分享到:
评论

相关推荐

    Hadoop+HBase+Java API

    标题 "Hadoop+HBase+Java API" 涉及到三个主要的开源技术:Hadoop、HBase以及Java API,这些都是大数据处理和存储领域的关键组件。以下是对这些技术及其结合使用的详细介绍: **Hadoop** 是一个分布式计算框架,由...

    Hbase调用JavaAPI实现批量导入操作

    这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase中批量导入数据。在这个过程中,我们将探讨以下几个关键知识点: 1. **HBase架构**: HBase是基于列族的存储模型,数据被...

    hbase常用JAVA API

    在Java中,我们可以使用HBase的Java API来与HBase交互,进行数据的读写操作。下面将详细介绍HBase Java API的核心概念和常用方法。 1. **连接HBase** 要连接到HBase,你需要创建一个`Configuration`对象,然后通过...

    Hbase的JavaAPI

    在Java环境中,HBase提供了丰富的Java API供开发者进行数据操作,包括创建表、删除表、更新表以及查询表等基本功能。下面我们将深入探讨HBase的Java API及其在实际应用中的使用。 1. **HBase连接** 在Java中使用...

    HBase 1.2.0 Javadoc API CHM

    自行制作的HBase 1.2.0 Javadoc API CHM版本。内容抽取自官方站点网页

    Hbase Java API

    HBase Java API HBase 是 Hadoop 的数据库,能够对大数据提供随机、实时读写访问。他是开源的,分布式的,多版本的,面向列...HBase 的 Java API 提供了多种方法来操作数据和管理表结构,是大数据处理的重要工具之一。

    hbase java api 所需最精简 jar

    "hbase java api 所需最精简 jar"这个标题意味着我们将探讨的是为了在Java环境中最小化依赖,但仍能实现基本HBase操作所需的JAR文件。 首先,我们需要理解HBase Java API的核心组件。HBase的Java客户端API提供了一...

    Hbase调用JavaAPI实现批量导入操作.docx

    Hbase 调用 JavaAPI 实现批量导入操作 在大数据时代,Hbase 作为一个分布式、面向列的 NoSQL 数据库,广泛应用于大规模数据存储和处理中。同时,JavaAPI 作为一个强大且流行的编程语言,广泛应用于各种软件开发中。...

    hbase java api 访问 查询、分页

    在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...

    HBase Java API类介绍

    ### HBase Java API类介绍 #### 一、概述 HBase是一个分布式的、面向列的开源数据库,基于Google的Bigtable论文实现。它适合于非结构化数据存储,并且能够实时处理PB级别的数据。HBase提供了Java API供开发者使用...

    hbase java api 访问 增加修改删除(一)

    在本文中,我们将深入探讨如何使用HBase的Java API进行数据的增加、修改和删除操作。HBase是一个基于Google Bigtable设计的开源分布式数据库,它属于Apache Hadoop生态系统的一部分,适用于处理大规模数据存储。通过...

    javaApi_sparkhiveAPI_hbaseAPI.zip

    本压缩包"javaApi_sparkhiveAPI_hbaseAPI.zip"包含了2019年8月至10月期间针对这些技术的Java版API实现,以及与Spark相关的Hive和HBase API。以下是关于这些技术的详细知识: 1. **Java API for Hive**: - **Hive*...

    HBase JavaAPI开发

    使用JavaAPI实现HBase的ddl(创建表、删除表、修改表(添加列族等))、dml(添加数据、删除数据)、dql(查询数据(get、scan))等操作 除此之外还包含一些其他操作:命名空间的应用、快照的应用等 对应(《HBase...

    使用Java API连接虚拟机HBase并进行数据库操作,Java源代码

    在本文中,我们将深入探讨如何使用Java API连接到运行在虚拟机上的HBase数据库,并进行相关的数据操作。HBase是一个分布式的、版本化的、基于列族的NoSQL数据库,它构建于Hadoop之上,适用于处理大规模的数据存储和...

    Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据).pdf

    在本文档中,我们将深入探讨如何使用Java API与HBase数据库进行交互,特别是关于如何创建表、修改表结构以及批量插入数据。HBase是Apache的一个分布式、可扩展的大数据存储系统,它基于谷歌的Bigtable设计,适用于...

    java解决hive快速导数据到Hbase代码

    Java在大数据生态中扮演着连接不同组件的重要角色,它提供了丰富的API和库,使得开发者能够轻松地实现Hive和HBase之间的数据迁移。 要实现在Java中从Hive到HBase的快速导数据,我们需要遵循以下步骤: 1. **配置...

    11-HBase Java API编程实践1

    HBase Java API 编程实践 在本实践中,我们将使用 Eclipse 编写 Java 程序,来对 HBase 数据库进行增删改查等操作。首先,我们需要启动 Hadoop 和 HBase,然后新建一个 Java 项目并导入 HBase 的 jar 包。接着,...

    hbase资料api

    HBase数据查询API HBase是一种分布式的、面向列的NoSQL数据库,主要应用于存储大量的半结构化数据。HBase提供了多种查询方式,包括单条查询和批量查询。 单条查询 单条查询是通过rowkey在table中查询某一行的数据...

    HBaseApi.java

    HBase-APi操作demo

    Hbase-Java-API.md

    Hbase_Java_API,实战篇

Global site tag (gtag.js) - Google Analytics