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

Hbase API TEST

阅读更多
一个使用HBase的例子,如下。

import java.io.IOException;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Scanner;
import org.apache.hadoop.hbase.io.BatchUpdate;
import org.apache.hadoop.hbase.io.Cell;
import org.apache.hadoop.hbase.io.RowResult;

public class MyClient {

public static void main(String args[]) throws IOException {
    // You need a configuration object to tell the client where to connect.
    // But don't worry, the defaults are pulled from the local config file.
    HBaseConfiguration config = new HBaseConfiguration();

    // This instantiates an HTable object that connects you to the "myTable"
    // table. 
    HTable table = new HTable(config, "myTable");

    // To do any sort of update on a row, you use an instance of the BatchUpdate
    // class. A BatchUpdate takes a row and optionally a timestamp which your
    // updates will affect. 
    BatchUpdate batchUpdate = new BatchUpdate("myRow");

    // The BatchUpdate#put method takes a Text that describes what cell you want
    // to put a value into, and a byte array that is the value you want to 
    // store. Note that if you want to store strings, you have to getBytes() 
    // from the string for HBase to understand how to store it. (The same goes
    // for primitives like ints and longs and user-defined classes - you must 
    // find a way to reduce it to bytes.)
    batchUpdate.put("myColumnFamily:columnQualifier1", 
      "columnQualifier1 value!".getBytes());

    // Deletes are batch operations in HBase as well. 
    batchUpdate.delete("myColumnFamily:cellIWantDeleted");

    // Once you've done all the puts you want, you need to commit the results.
    // The HTable#commit method takes the BatchUpdate instance you've been 
    // building and pushes the batch of changes you made into HBase.
    table.commit(batchUpdate);

    // Now, to retrieve the data we just wrote. The values that come back are
    // Cell instances. A Cell is a combination of the value as a byte array and
    // the timestamp the value was stored with. If you happen to know that the 
    // value contained is a string and want an actual string, then you must 
    // convert it yourself.
    Cell cell = table.get("myRow", "myColumnFamily:columnQualifier1");
    String valueStr = new String(cell.getValue());
    
    // Sometimes, you won't know the row you're looking for. In this case, you
    // use a Scanner. This will give you cursor-like interface to the contents
    // of the table.
    Scanner scanner = 
      // we want to get back only "myColumnFamily:columnQualifier1" when we iterate
      table.getScanner(new String[]{"myColumnFamily:columnQualifier1"});
    
    
    // Scanners in HBase 0.2 return RowResult instances. A RowResult is like the
    // row key and the columns all wrapped up in a single interface. 
    // RowResult#getRow gives you the row key. RowResult also implements 
    // Map, so you can get to your column results easily. 
    
    // Now, for the actual iteration. One way is to use a while loop like so:
    RowResult rowResult = scanner.next();
    
    while(rowResult != null) {
      // print out the row we found and the columns we were looking for
      System.out.println("Found row: " + new String(rowResult.getRow()) + " with value: " +
       rowResult.get("myColumnFamily:columnQualifier1".getBytes()));
      
      rowResult = scanner.next();
    }
    
    // The other approach is to use a foreach loop. Scanners are iterable!
    for (RowResult result : scanner) {
      // print out the row we found and the columns we were looking for
      System.out.println("Found row: " + new String(result.getRow()) + " with value: " +
       result.get("myColumnFamily:columnQualifier1".getBytes()));
    }
    
    // Make sure you close your scanners when you are done!
    scanner.close();
}
}
分享到:
评论

相关推荐

    javaApi_sparkhiveAPI_hbaseAPI.zip

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

    test_hbase - feed 插入,查询

    为了插入这些数据,我们需要使用HBase的API,如Java API或者HBase Shell。通常,我们需要创建一个表,定义列族,然后使用put命令将数据插入到指定的行和列。 插入数据的基本步骤如下: 1. 连接到HBase集群:使用...

    hbase1.0.3_part1

    - **test**: 测试用例,验证HBase的功能和性能。 在实际应用中,用户通常需要结合Hadoop集群的配置,调整HBase的配置参数,如region大小、内存使用、Compaction策略等,以满足特定场景的需求。同时,理解RowKey的...

    java代码将mysql表数据导入HBase表

    这里我们使用JDBC连接MySQL,使用HBase Java API操作HBase。以下是一个简单的示例: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop....

    hbase-0.98.12.1-src.tar.gz

    - `src/main/java`: 存放核心源代码,包括HBase的服务器端和客户端API、RegionServer、Master、Zookeeper交互等。 - `src/test`: 测试用例,用于验证功能的正确性和性能。 - `src/resources`: 配置文件和其他资源...

    Hbase1.3.1源码

    1. **Maven构建系统**:HBase使用Maven作为构建工具,源码组织结构遵循Maven的标准目录结构,如src/main/java存放Java源代码,src/test/java存放测试代码。通过Maven的pom.xml文件可以了解项目的依赖关系和构建配置...

    hbase-1.4.12-src.tar.gz

    2. **测试代码**:在`src/test`目录下,有单元测试和集成测试用例,这些测试用例对于理解和验证HBase的功能非常有价值。 3. **配置文件**:在`conf`目录下,包含了HBase的默认配置,如`hbase-site.xml`,这是用户...

    java代码使用thrift2操作hbase示例

    Thrift2是Thrift的升级版本,提供了更优化的性能和更完善的API。在Java中,我们可以利用Thrift2生成的客户端库来与HBase进行交互。以下是使用Java和Thrift2操作HBase的一些关键知识点: 1. **设置环境**:首先确保...

    hbase-0.98.6-cdh5.3.6.zip

    4. **lib目录**:包含了运行HBase所需的所有依赖库,这些库支持HBase的核心功能,如Java API、Zookeeper通信和HDFS交互。 5. **docs目录**:包含官方文档,对HBase的架构、API、操作指南等内容进行了详尽的解释。 6....

    使用客户端squirrel client连接phoenix查询HBase数据

    而 Apache Phoenix 是一个开源的 SQL 层,它为 HBase 提供了 SQL 接口,使得用户可以通过标准的 JDBC API 或者 SQL 客户端工具来访问 HBase 数据。 Squirrel SQL Client 是一款轻量级但功能强大的图形化数据库管理...

    smoketest-hbase:HBase 的一些冒烟测试

    10. **Java API**:理解如何使用Java API来连接、操作HBase,以及处理异常情况。 通过这个smoketest-hbase项目,开发者或测试人员可以对HBase的健康状况进行快速检查,确保其核心功能的稳定性和可靠性。对于维护和...

    hbase源码带中文注释

    8. **Test-HBase**: 测试模块,包含了HBase的单元测试和集成测试,这对于理解HBase的正确性验证和测试策略非常重要。 9. **HBase Hadoop Compat**: 类似于HBase Hadoop2 Compat,但针对Hadoop 1.x版本的兼容性。...

    JAVA将HDFS中的文件导入HBase

    3. **连接HDFS**:使用Hadoop的`FileSystem` API建立与HDFS的连接。通过`FileSystem.get(conf)`方法,其中`conf`是包含HDFS配置信息的`Configuration`对象。 4. **读取HDFS文件**:获取文件的`Path`对象,然后使用`...

    hbase-0.90.3.tar.gz

    - **docs**:HBase的文档和API参考。 - **src**:源代码目录,分为java和test两个子目录,分别存放主代码和测试代码。 - **build**:编译后的二进制文件和文档。 - **ivy**:构建工具Ivy的相关文件。 在0.90.3版本...

    hbase-1.1.2.2.6.4.0-91.tar.gz

    2. `src/test`:测试代码,用于验证HBase的功能是否正常。 3. `pom.xml`:项目对象模型文件,定义了项目依赖、构建规则等信息,是Maven(Java项目构建工具)的关键配置文件。 4. `docs`:文档目录,可能包含用户指南...

    hbase&hadoop初探

    在HBase方面,了解RegionServer、Zookeeper的角色,以及如何通过Java API或者HBase Shell进行数据操作是基础。深入学习可能涉及HBase的表设计、过滤器机制、以及性能调优等方面。 通过阅读提供的博客文章和解压后的...

    1-8+携程+HBase+实践.pdf

    在MKT场景下,通过Jstorm作业与HBase API交互,进行实时写入、批量写入和读取,同时支持ABTest、智能推荐、海外玩乐爬虫分析等多样化业务。 3. **监控体系**:为了确保HBase的稳定运行,携程构建了全面的监控系统。...

    hbase-fs-rest:用于 hbase-fs 的 HTTP REST API

    hbase-fs-rest is a InputStream/OutputStream lib for reading & writing file on . It's not very convenient for end-user. So, we build a HTTP-REST Service to simplify the operation. Basically, we use ...

    python 调用HBase的简单实例

    此外,随着HBase版本的更新,相关的API可能会有所变动,因此在实际使用过程中也需要关注最新的文档和指南。 通过本文的学习,希望能够帮助大家更好地理解和掌握如何使用Python与HBase进行交互的基本方法。

    SpringHbaseDemo-master.zip

    1. **Spring的HBase模板(Spring HBase Template)** - 这是Spring提供的一个简化HBase操作的抽象层,允许开发者通过面向对象的方式来操作HBase,无需直接编写原生的HBase API代码。 2. **HBase的表和列族设计** - ...

Global site tag (gtag.js) - Google Analytics