今天看说学习了下通过java 调用HBase api 实习表的创建和数据插入的操作,贴下代码:
package com.lyq.study.api; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import com.lyq.study.util.HBaseConfigUtils; public class HBase_API { public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { String tableName = "hbasetest"; String familyName = "info"; Configuration conf = HBaseConfigUtils.getHBaseConfig(1); //创建表 HBaseAdmin admin = new HBaseAdmin(conf); HTableDescriptor tableDesc = new HTableDescriptor(tableName); tableDesc.addFamily(new HColumnDescriptor(familyName)); admin.createTable(tableDesc); //插入表数据 HTable table = new HTable(conf, tableName); //单条插入 //row1为rowkey Put putRow1 = new Put("row1".getBytes()); putRow1.add(familyName.getBytes(), "name".getBytes(), "zhangsan".getBytes()); putRow1.add(familyName.getBytes(), "age".getBytes(), "24".getBytes()); putRow1.add(familyName.getBytes(), "city".getBytes(), "chengde".getBytes()); putRow1.add(familyName.getBytes(), "sex".getBytes(), "male".getBytes()); table.put(putRow1); //多条插入 List<Put> list = new ArrayList<Put>(); Put p = null; p = new Put("rowkey1".getBytes()); p.add(familyName.getBytes(), "name".getBytes(), "wangwu".getBytes()); p.add(familyName.getBytes(), "sex".getBytes(), "male".getBytes()); p.add(familyName.getBytes(), "city".getBytes(), "beijing".getBytes()); p.add(familyName.getBytes(), "age".getBytes(), "25".getBytes()); list.add(p); p = new Put("rowkey2".getBytes()); p.add(familyName.getBytes(), "name".getBytes(), "zhangliu".getBytes()); p.add(familyName.getBytes(), "sex".getBytes(), "male".getBytes()); p.add(familyName.getBytes(), "city".getBytes(), "handan".getBytes()); p.add(familyName.getBytes(), "age".getBytes(), "28".getBytes()); list.add(p); p = new Put("rowkey3".getBytes()); p.add(familyName.getBytes(), "name".getBytes(), "liqing".getBytes()); p.add(familyName.getBytes(), "sex".getBytes(), "female".getBytes()); p.add(familyName.getBytes(), "city".getBytes(), "guangzhou".getBytes()); p.add(familyName.getBytes(), "age".getBytes(), "18".getBytes()); list.add(p); table.put(list); } }
创建表之接调用了HBaseAdmin对象的create(HTableDescriptor desc)方法,
插入数据分别掉用了HTable对象的put(Put put)方法,和put(List<Put> list)方法:
其中put(Put put)方法实习了数据的单条插入,
put(List<Put> list)方法实现了数据的多条批量插入。
Configuration conf = HBaseConfigUtils.getHBaseConfig(1);
这句代码中的HBaseConfigUtils.getHBaseConfig(int flag)方法代码如下:
package com.lyq.study.util; import org.apache.hadoop.conf.Configuration; public class HBaseConfigUtils { /** * 获取HBaseConfiguration * @param flag * 集群标识:0,单机;1集群 * @return */ public static Configuration getHBaseConfig(int flag){ Configuration conf = new Configuration(); if(flag > 0){ //集群 conf.set("fs.defaultFS", "hdfs://master129:9000/"); conf.set("mapreduce.framework.name", "local"); conf.set("mapred.job.tracker", "master129:9001"); conf.set("hbase.zookeeper.quorum", "master129,slave130,slave131,slave132"); }else{ //单机 conf.set("fs.defaultFS", "hdfs://ubuntu:9000/"); conf.set("mapreduce.framework.name", "local"); conf.set("mapred.job.tracker", "ubuntu:9001"); conf.set("hbase.zookeeper.quorum", "ubuntu"); } return conf; } }
相关推荐
本教程将详细介绍如何使用Java API来创建和删除HBase表,并针对不使用Maven的初学者提供必要的jar包支持。 首先,你需要在项目中引入HBase的客户端库。由于这里没有使用Maven,你需要手动下载并添加以下jar包到项目...
这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase中批量导入数据。在这个过程中,我们将探讨以下几个关键知识点: 1. **HBase架构**: HBase是基于列族的存储模型,数据被...
1. **HBase客户端API**:这是Java-HBase开发包的核心,提供了一组Java接口和类,用于连接到HBase集群,创建表,插入、查询和更新数据。例如,`HTableInterface` 和 `HBaseAdmin` 接口,以及 `Put`、`Get` 和 `Scan` ...
在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...
这个文件是Maven项目的配置文件,其中包含了项目依赖的库,如HBase客户端库和其他相关库,例如Hadoop的依赖,这些库是Java调用HBase所必需的。 6. **src目录**: 这个目录通常包含项目的源代码,包括封装HBase的...
在Java API中访问HBase是大数据处理中常见的一项任务,HBase作为一个分布式、列式存储的NoSQL数据库,常用于海量数据的实时读写。在这个Java API访问HBase的Maven项目中,我们将探讨如何配置项目,引入依赖,以及...
首先,为了在Java中调用HBase的API,我们需要添加HBase的依赖库到项目中。对于HBase 0.98,你需要在`pom.xml`或构建脚本中包含相应的Maven依赖: ```xml <groupId>org.apache.hbase <artifactId>hbase-client ...
在Java环境中,HBase提供了丰富的Java API供开发者进行数据操作,包括创建表、删除表、更新表以及查询表等基本功能。下面我们将深入探讨HBase的Java API及其在实际应用中的使用。 1. **HBase连接** 在Java中使用...
对于编程实现,可以通过Java API来执行相同的操作,这要求对HBase的Java客户端库有深入了解,包括连接HBase集群、创建表、写入和读取数据等方法。 对于实验要求,除了列出所有表的信息,还需要实现其他功能,如创建...
在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据,查询一条数据,查询所有数据等操作。 具体流程如下: 1.创建项目 2.获取jar包到项目的lib目录下(这边试用的事...
创建`HTable`实例来操作表,并使用`Put`对象插入数据: ```java HTable table = new HTable(config, "MyTable"); byte[] rowKey = Bytes.toBytes("row1"); Put put = new Put(rowKey); put.add(Bytes.toBytes(...
3. **获取表**:使用`Admin`接口来管理HBase表,如创建、删除和获取表。`Table`对象是操作数据的主要接口,通过`connection.getTable(TableName)`获取。 4. **添加数据**:HBase的数据以行键(Row Key)的形式存储...
HBase提供了丰富的Java API,允许开发者创建、删除表,插入、查询和更新数据,以及管理表分区等。主要类包括HBaseAdmin、HTable、Put、Get、Scan等。 三、配置HBase连接 在使用Java API前,需要在代码中配置HBase的...
在Java环境中,HBase提供了丰富的客户端API,使得开发者能够方便地进行数据的增删查改操作。本示例代码主要涵盖了以下几个核心知识点: 1. **HBase连接与配置** 在Java中操作HBase,首先需要创建一个`...
2. Hbase客户端:封装Hbase的操作,如创建表、插入数据、查询数据等,通过JavaBean提供友好API。 3. Kafka生产者和消费者:编写Kafka生产者发送数据到主题,消费者从主题接收数据并处理。 4. 数据模型:定义JavaBean...
1. **HBase客户端API**:Java开发者可以通过这个API创建表、插入数据、查询数据以及管理HBase集群。它提供了如`Admin`接口用于管理表和区域,`Table`接口用于操作表,以及`Put`、`Get`、`Delete`和`Scan`对象用于...
继续深入,HBase的操作还包括创建表、插入数据、更新数据和删除数据等。在Shell中,创建表如`create 'table_name', 'column_family'`,插入数据则使用`put`命令,更新可通过`put`命令覆盖原有数据,删除数据可以是...
这些API包括连接HBase集群、创建表、插入行、扫描表、删除数据等方法。在这个项目中,开发人员可能会使用`Table`、`Put`、`Get`、`Delete`和`Scan`等类来实现数据的增删改查功能。 6. **HTTP协议**: 在Web应用中,...
HBase Shell提供了创建表、删除表、插入数据、查询数据等基本操作,同时也支持复杂的条件查询和扫描。通过Shell,你可以直接执行HBase的API调用,进行调试和测试。 2. **HBase REST Gateway**:REST...
总之,Spring Data Hadoop的HbaseTemplate为Java开发者提供了一种简洁且强大的方式来操作HBase,通过其丰富的API可以轻松实现各种HBase操作。在实际项目中,结合Spring的依赖注入和配置管理,能够有效地提升代码的可...