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

Hbase官方API基础操作

 
阅读更多
package com.finder.hbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
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;


// Class that has nothing but a main.
// Does a Put, Get and a Scan against an hbase table.
public class MyLittleHBaseClient {
  public static void main(String[] args) throws IOException {
    // You need a configuration object to tell the client where to connect.
    // When you create a HBaseConfiguration, it reads in whatever you've set
    // into your hbase-site.xml and in hbase-default.xml, as long as these can
    // be found on the CLASSPATH
    Configuration config = HBaseConfiguration.create();

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

    // To add to a row, use Put.  A Put constructor takes the name of the row
    // you want to insert into as a byte array.  In HBase, the Bytes class has
    // utility for converting all kinds of java types to byte arrays.  In the
    // below, we are converting the String "myLittleRow" into a byte array to
    // use as a row key for our update. Once you have a Put instance, you can
    // adorn it by setting the names of columns you want to update on the row,
    // the timestamp to use in your update, etc.If no timestamp, the server
    // applies current time to the edits.
    Put p = new Put(Bytes.toBytes("myLittleRow"));

    // To set the value you'd like to update in the row 'myLittleRow', specify
    // the column family, column qualifier, and value of the table cell you'd
    // like to update.  The column family must already exist in your table
    // schema.  The qualifier can be anything.  All must be specified as byte
    // arrays as hbase is all about byte arrays.  Lets pretend the table
    // 'myLittleHBaseTable' was created with a family 'myLittleFamily'.
    p.add(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"),
      Bytes.toBytes("Some Value"));

    // Once you've adorned your Put instance with all the updates you want to
    // make, to commit it do the following (The HTable#put method takes the
    // Put instance you've been building and pushes the changes you made into
    // hbase)
    table.put(p);

    // Now, to retrieve the data we just wrote. The values that come back are
    // Result instances. Generally, a Result is an object that will package up
    // the hbase return into the form you find most palatable.
    Get g = new Get(Bytes.toBytes("myLittleRow"));
    Result r = table.get(g);
    byte [] value = r.getValue(Bytes.toBytes("myLittleFamily"),
      Bytes.toBytes("someQualifier"));
    // If we convert the value bytes, we should get back 'Some Value', the
    // value we inserted at this location.
    String valueStr = Bytes.toString(value);
    System.out.println("GET: " + valueStr);

    // 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.  To set up a Scanner, do like you did above making a Put
    // and a Get, create a Scan.  Adorn it with column names, etc.
    Scan s = new Scan();
    s.addColumn(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"));
    ResultScanner scanner = table.getScanner(s);
    try {
      // Scanners return Result instances.
      // Now, for the actual iteration. One way is to use a while loop like so:
      for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
        // print out the row we found and the columns we were looking for
        System.out.println("Found row: " + rr);
      }

      // The other approach is to use a foreach loop. Scanners are iterable!
      // for (Result rr : scanner) {
      //   System.out.println("Found row: " + rr);
      // }
    } finally {
      // Make sure you close your scanners when you are done!
      // Thats why we have it inside a try/finally clause
      scanner.close();
    }
  }
}

 

分享到:
评论

相关推荐

    nosql实验四-HBaseShell API操作.docx

    在本实验中,我们将使用 HBase Shell API 来实现基本的数据操作,包括创建表、查看所有表、插入数据等。 HBase 配置和连接 在使用 HBase Shell API 之前,需要首先配置 HBase 的连接信息。在本实验中,我们使用的...

    Hbase Java API

    HBase 的 Java API 是通过 HBaseConfiguration 对象来操作的。HBaseConfiguration 代表的是 HBase 配置信息,可以通过两个构造方式来创建:public HBaseConfiguration() 和 public HBaseConfiguration(final ...

    hbase java api 所需最精简 jar

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

    hbase 0.9 api

    了解并熟练使用HBase 0.94.5的API是开发HBase应用的基础,通过这些API,开发者可以构建出高效、可扩展的大数据解决方案。同时,随着HBase的不断升级,新的API和功能也在不断增加,适应不断变化的技术需求。

    scala API 操作hbase表

    以下是一些关键的Scala API操作HBase的基本步骤: 1. 引入必要的库: 首先,在你的Scala源代码文件中引入所需的库。例如: ```scala import org.apache.hadoop.conf.Configuration import org.apache.hadoop....

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

    以上就是HBase Java API进行增加、修改和删除操作的基本用法。实际应用中,可能需要处理更复杂的场景,如批量操作、扫描、过滤等,这都需要对HBase的API有深入的理解。记住,始终确保正确管理和关闭资源,以避免内存...

    HBase中文API

    Apache HBase是一个分布式的、版本化的、基于列的NoSQL数据库,它构建在Hadoop文件系统(HDFS)之上,提供了高吞吐量的数据访问。...以上只是HBase中文API的基础知识,深入学习还需要结合实际操作和不断实践。

    hbase API

    学习HBase API,不仅需要理解其基本概念,还需要熟悉Java编程,因为HBase的官方API是用Java实现的。同时,了解Hadoop生态系统和分布式计算原理也有助于更好地运用HBase。通过实践和实验,可以逐步掌握如何利用HBase ...

    hbase java api 访问 查询、分页

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

    Hbase的安装过程及基本操作

    在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...

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

    这就是使用Java API连接虚拟机上HBase的基本步骤。实际应用中可能需要处理更多的细节,比如错误处理、连接池管理以及更复杂的查询操作。了解这些基础后,你可以根据具体需求对代码进行扩展,以满足各种数据处理场景...

    HBase_Client_Api_Guide

    ### HBase客户端API指南知识点详解 #### 一、HBase数据读写流程 ...以上内容涵盖了HBase客户端API的基础知识及使用技巧,通过掌握这些知识,开发者可以更加高效地使用HBase进行数据的存储和管理。

    Hbase 安装与基本使用

    **四、HBase基本操作** 1. **创建表**:使用HBase shell或Java API,通过`create '表名', '列族'`命令创建表,例如`create 'users', 'info'`创建名为users的表,列族为info。 2. **插入数据**:插入数据通过`put '...

    如何使用Java API操作Hbase(基于0.96新的api)

    在Java中操作HBase,尤其是基于0.96版本的...以上就是使用Java API操作HBase的基本步骤。理解这些概念和方法对于有效管理和处理HBase中的数据至关重要。实际应用中,还需要考虑性能优化、并发控制以及错误处理等细节。

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

    在本文档中,我们将深入探讨如何使用Java API与HBase数据库进行交互,特别是关于如何创建表、修改表结构以及批量插入数据。...理解这些基本操作对于高效地使用HBase至关重要,特别是在大数据处理和分析的场景下。

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

    实验的目标是让你理解HBase在Hadoop架构中的地位,以及掌握通过Shell命令和Java API进行基本操作的方法。 首先,让我们来看看实验的平台配置。实验要求的操作系统是Linux,这通常是大数据处理的首选平台,因为它...

    Hbase的JavaAPI

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

    Hbase 官方中文文档

    HBase官方中文文档概述了Apache HBase TM的基本概念、配置方法、升级策略、shell使用、数据模型、架构设计、安全机制、API接口、性能调优以及故障排除等多方面的知识。HBase是一个开源的非关系型分布式数据库(NoSQL...

    hbase hadoop chm java 帮助文档

    【标签】"hadoop hbase chm java"进一步强调了文档的主要内容,涵盖了Hadoop、HBase这两个大数据领域的关键技术和CHM格式的Java参考文档,意味着这份资料不仅包含Hadoop和HBase的API详解,还有关于Java编程的基础和...

    hbase常用JAVA API

    HBase是一种分布式、高性能、...以上就是HBase常用Java API的基本操作。在实际应用中,还需要考虑并发控制、性能优化、错误处理等高级话题。通过熟练掌握这些API,你可以灵活地在Java应用程序中实现对HBase的数据操作。

Global site tag (gtag.js) - Google Analytics