`

9、HBase客户端程序开发

 
阅读更多
开发接口实现方式:
Native Java API   最常规和高效的访问方式;Java API是访问Hbase最快的方式。
HBase Shell       HBase的命令行工具,最简单的接口,适合HBase管理使用;
Thrift Gateway    利用Thrift序列化技术,支持C++, PHP, Python等多种语言。
REST Gateway      支持REST 风格的Http API访问HBase, 解除了语言限制;
MapReduce         直接使用MapReduce作业处理Hbase数据,使用Pig/hive处理Hbase数据。

一、java开发
步骤1:创建一个Configuration对象包含各种配置信息
       Configuration conf = HbaseConfiguration.create();
步骤2:构建一个HTable句柄,提供Configuration对象,提供待访问Table的名称(不支持多行事务或者表级别的事务,支持单行事务)
       org.apache.hadoop.hbase.client.HTable
       HTable table = new HTable(conf, tableName);
步骤3:执行相应的操作,执行put、 get、 delete、 scan等操作
       table.getTableName();
       table.put("str");
步骤4:关闭HTable句柄,将内存数据刷新到磁盘上,释放各种资源
       table.close();

Configuration对象包装了客户端程序连接Hbase服务所需的全部信息;
    Zookeeper位置
    Zookeeper连接超时时间
HbaseConfiguration.create()内部逻辑
1、从CLASSPATH中加载hbase-default.xml和hbase-site.xml两个文件
   在<hadoop_install>/conf/hadoop-env.sh中设置
   export HADOOP_CLASSPATH=$HBASE_HOME/*:$HBASE_HOME/conf:$HADOOP_CLASSPATH
   hadoop classpath | grep hbase
2、hbase-default.xml已经被打包到Hbase jar包中(hbase自带)
3、hbase-site.xml需添加到CLASSPATH中(自己配置)
4、hbase-site.xml将覆盖hbase-default.xml中的同名属性

HTable句柄的创建
创建HTable句柄代价很大
扫描.META.表等;
创建一次,以后尽可能复用;
如果需要创建多个Htable句柄,使用HTablePool;
HTable并非线程安全的:一个线程创建一个即可
Htable支持CRUD批处理:非线程安全,仅是为了提高性能

向HBase写入数据
步骤1:创建一个Put对象;
  Put put = new Put(Bytes.toBytes("rowkey"));//转化为byte
步骤2:设置cell值;
  Put.add(family, column, value)
  Put.add(family, column, timestamp, value)
  Put.add(KeyValue kv)
步骤3:调用HTable中的put方法,写入数据;
步骤4:关闭HTable句柄。



从Hbase中读取数据:
接口:
get.setTimeRange(minStamp, maxStamp)
get.setMaxVersions(maxVersions)
get.addFamily(family)
get.addColumn(family, column)
读取数据时注意事项:
只读取需要的数据
尽可能增加数据约束条件
可增加family, column(s), time range 和 max versions等约束条件



从Hbase中删除数据:


从Hbase中scan数据:



二、mapreduce开发

创建Job对象,设置基本属性;
设置scan对象,指定扫描区间和数据列;
调用TableMapReduceUtil的initTableMapperJob和initTableReducerJob设置Mapper和Reducer等信息;
提交作业;


例:




HBase建表
参看:http://www.ylzx8.cn/yidongkaifa/android/192868.html
java:
HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig); 
HTableDescriptor t = new HTableDescriptor(tableName); 
t.addFamily(new HColumnDescriptor(“f1″));
t.addFamily(new HColumnDescriptor(“f2″)); 
t.addFamily(new HColumnDescriptor(“f3″)); 
t.addFamily(new HColumnDescriptor(“f4″));
hAdmin.createTable(t);


HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);
if (hAdmin.tableExists(tableName)) {
       hAdmin.disableTable(tableName); 
       hAdmin.deleteTable(tableName);
 
}
  • 大小: 73.7 KB
  • 大小: 144.5 KB
  • 大小: 69.5 KB
  • 大小: 82 KB
  • 大小: 93.5 KB
  • 大小: 102.7 KB
  • 大小: 41.1 KB
  • 大小: 131.5 KB
  • 大小: 71.6 KB
分享到:
评论

相关推荐

    hbase客户端连接工具winutils-2.2.0.zip

    在Windows环境下,由于缺少Unix命令行工具,`winutils.exe`是必不可少的,尤其是在配置HBase客户端连接时。 在使用`winutils-2.2.0.zip`之前,你需要了解以下几点: 1. **安装JDK**:HBase和Hadoop都是用Java编写...

    hbase-client

    HBaseClient_1.6.1_64.exe可能是针对Windows系统的HBase客户端安装程序,便于用户在Windows环境下快速部署和使用。 二、HBase Shell HBase Shell是HBase自带的一个基于JLine的命令行工具,提供了与HBase交互的命令...

    hbase- java开发连接工具类

    1. **HBase客户端API**:Java开发者可以通过这个API创建表、插入数据、查询数据以及管理HBase集群。它提供了如`Admin`接口用于管理表和区域,`Table`接口用于操作表,以及`Put`、`Get`、`Delete`和`Scan`对象用于...

    java-hbase开发包

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

    在eclipse中开发HBase程序的方法

    在Eclipse中开发HBase程序是一项涉及多个步骤的复杂任务,尤其对于初学者而言,掌握这一过程需要对Eclipse IDE、Hadoop生态系统以及HBase有深入的理解。以下是从标题、描述、标签及部分内容中提取的关键知识点,旨在...

    Hbase

    在 HBase 中,客户端(如 `HbaseClient.java` 文件所示)是应用程序与 HBase 交互的接口。客户端通过连接到 ZooKeeper 获取 Master Server 的位置,然后与 RegionServer 进行通信,执行 CRUD(创建、读取、更新和...

    java开发hbase-1.2.1所需的jar包

    1. **HBase依赖**: 开发HBase应用程序时,首先需要在项目中引入HBase的客户端库。HBase 1.2.1的jar包通常包括`hbase-client.jar`,它包含了与HBase通信的所有必要API。 2. **Zookeeper**: HBase依赖Zookeeper进行...

    hbase1.2+java开发最小依赖jar包合集

    9. **异常处理**:Java开发时,需要处理HBase特有的异常,如`IOException`、`TableNotFoundException`、`RegionServerUnavailableException`等,确保程序的健壮性。 10. **MapReduce与HBase**:HBase可以与Hadoop的...

    HBase学习利器:HBase实战

    - **第6章:替代HBase客户端**:介绍除了Java API之外的其他语言接口(如Thrift、RESTful API等),以及如何使用这些客户端进行开发。 - **第三部分:示例应用程序** - **第7章:构建实际应用**:通过一系列具体...

    hbase开发依赖包

    在进行HBase开发时,通常还需要其他依赖,如Hadoop的相关库、Zookeeper客户端等。正确管理和配置这些依赖,能够保证应用程序与HBase集群之间的顺畅通信,以及高效稳定的数据操作。在实际项目中,通常会使用构建工具...

    gohbaseHBasego客户端.pdf

    此段代码演示了如何使用gohbase客户端进行基本的HBase表读取操作,以及如何在Go程序中设置超时。 #### 内部架构 gohbase的内部架构设计为异步模型,以下是正常情况下的操作流程: 1. **获取区域**:客户端首先...

    多线程 hbase

    2. **HBase客户端API**:HBase提供了Java客户端API,支持线程安全的`HTablePool`,这个池可以管理多个`HTable`实例,每个实例对应一个HBase表,允许多线程共享和复用这些实例,减少创建和销毁HTable对象的开销。...

    大数据HBase二次开发.pdf

    2. **Java API**:Java API是HBase的主要客户端接口,允许开发者直接在Java应用程序中集成HBase的功能。通过调用HBase的Java库中的类和方法,可以实现对HBase的各种操作,如创建表、读写数据等。 3. **REST接口**:...

    hbase开发依赖包.zip

    综上所述,"hbase开发依赖包.zip"中的这些库和工具对于HBase开发来说是基础且不可或缺的,它们帮助开发者构建高效、可靠的HBase应用程序,并提供了诸如性能监控、数据序列化、日志处理和字符串操作等功能。...

    HBase使用的jar包

    1. **HBase客户端库**:这是与HBase交互的基础,包含了HBase的API,如`org.apache.hadoop.hbase.client.Connection`和`org.apache.hadoop.hbase.client.Table`等,用于创建连接、打开表、执行Get、Put、Scan等操作。...

    hadoop2.73-eclipse开发hbase所需要的所有jar包

    在Java开发环境中,Eclipse是一款广泛使用的集成开发环境(IDE),而Hadoop和HBase是大数据处理领域的重要组件。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据;HBase则是建立在Hadoop之上的...

    hadoop-2.7.2-hbase-jar.tar.gz

    在开发层面,"hadoop-2.7.2-hbase-jar"提供了Java API,允许开发者编写HBase客户端程序,进行数据的增删查改操作。同时,HBase还支持使用HBase Shell,这是一个基于JRuby的命令行工具,用户可以通过它直接与HBase...

    Phoenix 客户端 squirrel_安装

    利用Squirrel,你可以轻松地进行HBase的数据查询、管理表结构、监控性能等操作,大大提高了开发和管理HBase的效率。请记住,定期更新Squirrel和Phoenix驱动,以获取最新的功能和安全修复。在实际使用中,熟悉SQL语法...

Global site tag (gtag.js) - Google Analytics