HBase提供了Java API对其进行管理,包括对表的管理、数据的操作等。 HBaseAdmin —— 对表的创建、删除、显示以及修改等。 HTable —— 通过HTable的实例来访问表并进行数据的操作。
package test; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.HBaseAdmin; 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.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.filter.Filter; import org.apache.hadoop.hbase.filter.FilterList; import org.apache.hadoop.hbase.filter.SingleColumnValueFilter; import org.apache.hadoop.hbase.util.Bytes; public class OperateTable { public static Configuration conf; static{ conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","master"); conf.set("hbase.zookeeper.property.clientPort","2181"); } public static void main(String[] args) throws Exception { // createTable("hanyiting"); // insertData("hanyiting"); // queryAll("hanyiting"); // queryByCondition("hanyiting"); // listAllTables(); listTableFamily("test"); } public static void createTable(String tableName){ System.out.println("start create table ......"); try { HBaseAdmin admin = new HBaseAdmin(conf); if(admin.tableExists(tableName)){ admin.disableTable(tableName); admin.deleteTable(tableName); System.out.println(tableName + " is exist,delete ......"); } HTableDescriptor desc = new HTableDescriptor(tableName); desc.addFamily(new HColumnDescriptor("column1")); desc.addFamily(new HColumnDescriptor("column2")); desc.addFamily(new HColumnDescriptor("column3")); admin.createTable(desc); admin.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("end create table ......"); } public static void insertData(String tableName){ System.out.println("start insert data ......"); HTable table; try { table = new HTable(conf,tableName); Put put = new Put("112233bbcc".getBytes()); put.add("column1".getBytes(),null,"aaa".getBytes()); put.add("column2".getBytes(),null,"bbb".getBytes()); put.add("column3".getBytes(),null,"ccc".getBytes()); table.put(put); } catch (Exception e) { e.printStackTrace(); } } public static void dropTable(String tableName){ HBaseAdmin admin; try { admin = new HBaseAdmin(conf); admin.disableTable(tableName); admin.deleteTable(tableName); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void deleteRow(String tableName,String rowkey){ try{ HTable table = new HTable(conf, tableName); List list = new ArrayList(); Delete d1 = new Delete(rowkey.getBytes()); list.add(d1); table.delete(list); System.out.println("删除行成功!"); }catch(Exception e){ e.printStackTrace(); } } public static void queryAll(String tableName){ try { HTable table = new HTable(conf, tableName); ResultScanner rs = table.getScanner(new Scan()); for(Result r : rs){ System.out.println("获得到rowkey:"+new String(r.getRow())); for(KeyValue keyvalue : r.raw()){ System.out.println("列族:"+new String(keyvalue.getFamily())+"列:"+new String(keyvalue.getKey() + "====值:"+new String(keyvalue.getValue()))); } } } catch (IOException e) { e.printStackTrace(); } } public static void queryByCondition(String tableName){ try{ HTable table = new HTable(conf, tableName); List<Filter> filters = new ArrayList<Filter>(); Filter filter = new SingleColumnValueFilter(Bytes.toBytes("column1"), null, CompareOp.EQUAL, Bytes.toBytes("aaa")); filters.add(filter); FilterList filterList = new FilterList(filters); Scan scan = new Scan(); scan.setFilter(filterList); ResultScanner rs = table.getScanner(scan); for(Result r : rs){ System.out.println("获得到rowkey:"+new String(r.getRow())); for(KeyValue keyvalue : r.raw()){ System.out.println("列族:"+new String(keyvalue.getFamily())+"列:"+new String(keyvalue.getKey() + "====值:"+new String(keyvalue.getValue()))); } } rs.close(); }catch(Exception e){ e.printStackTrace(); } } public static void listAllTables(){ HBaseAdmin admin; try { admin = new HBaseAdmin(conf); TableName[] listTableNames = admin.listTableNames(); //表名 System.out.println(listTableNames.toString()); HTableDescriptor[] listTables = admin.listTables(); //整个表的结构 System.out.println(listTables.toString()); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void listTableFamily(String tableName){ try { HTable table = new HTable(conf, tableName); HTableDescriptor tableDescriptor = table.getTableDescriptor(); Collection<HColumnDescriptor> families = tableDescriptor.getFamilies(); for(HColumnDescriptor cdesc : families){ System.out.println(cdesc.getNameAsString()); } System.out.println(tableDescriptor); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
Java 操作 Hbase 进行建表、删表以及对数据进行增删改查 一、Hbase 简介 Hbase 是一个开源的、分布式的、基于 column-family 的 NoSQL 数据库。它是基于 Hadoop 的,使用 HDFS 作为其存储层。Hbase 提供了高性能、...
总结起来,Java操作HBase时,RowFilter是强大的数据筛选工具,它允许我们根据行键进行精确或范围匹配。正确理解和使用RowFilter,能够有效地优化HBase的数据读取,提高系统性能。在实际开发中,结合所提供的jar包,...
在Java编程环境中,操作HBase并将其数据写入HDFS(Hadoop Distributed File System)是一项常见的任务,特别是在大数据处理和分析的场景下。本篇将详细介绍如何使用Java API实现这一功能,以及涉及到的关键技术和...
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
在Java中操作HBase是一种常见的任务,特别是在大数据处理和存储的场景中。HBase是一个分布式的、基于列族的NoSQL数据库,它构建在Hadoop之上,提供了高性能、低延迟的数据存储和访问能力。本教程将详细介绍如何使用...
在Java中操作HBase数据库时,我们经常需要对大量数据进行高效的检索和处理。HBase提供了多种过滤器机制,其中PageFilter是一种非常实用的工具,它可以帮助我们在查询时限制返回的结果数量,从而优化性能和内存使用。...
这个名为“Hbasetest”的压缩包文件很可能包含了上述操作的完整示例代码,你可以通过查看和运行代码来加深对Java操作HBase的理解。务必注意,根据你的HBase集群配置,可能需要调整代码中的连接参数,以确保正确连接...
4. **批处理操作**:为了提高性能,Java-HBase支持批量写入和读取操作。`Put`对象可以收集多行的写操作,而`Get`和`Scan`则能一次性获取多行或多列的数据。 5. **过滤器和比较器**:通过使用`Filter`接口,开发者...
"Java操作HBase总结及示例代码" 使用Java对HBase进行操作是大数据处理中常见的场景,本文将总结使用Java对HBase进行操作的方法,并提供详细的示例代码。 一、Configuration 在使用Java API时,Client端需要知道...
在本文中,我们将深入探讨如何使用Java通过Thrift2接口操作HBase数据库。HBase是一个分布式、可扩展的大数据存储系统,它构建于Hadoop之上,支持实时读写。Thrift是一个轻量级的框架,用于跨语言服务开发,允许不同...
本示例代码主要展示了如何使用Java API连接HBase数据库,并执行基本的CRUD(创建、读取、更新、删除)操作,同时也包括了批量操作的支持。下面我们将详细探讨这些知识点。 首先,连接HBase需要引入HBase的客户端库...
"hbase jar包.zip" 提供了整合Spring与HBase所需的关键库文件,使得开发者能够高效地利用Spring进行HBase的操作。接下来,我们将深入探讨这些库文件的作用和功能,以及它们如何支持Spring集成HBase。 首先,hbase-...
Java连接HBase主要依赖于Apache HBase提供的Java客户端库,这个库包含了所有必要的类和接口,使得Java应用程序能够与HBase进行交互。HBase是一个分布式、版本化的NoSQL数据库,基于Google的Bigtable设计,运行在...
在本文档中,我们将深入探讨如何使用Java API与HBase数据库进行交互,特别是关于如何创建表、修改表结构以及批量插入数据。HBase是Apache的一个分布式、可扩展的大数据存储系统,它基于谷歌的Bigtable设计,适用于...
Java访问Hbase数据库是大数据处理中的常见操作,尤其在分布式存储和实时数据分析场景下。HBase,一个基于Google Bigtable模型的开源非关系型数据库,是Apache Hadoop生态系统的一部分,提供高并发、低延迟的数据存储...
总之,Spring Data Hadoop的HbaseTemplate为Java开发者提供了一种简洁且强大的方式来操作HBase,通过其丰富的API可以轻松实现各种HBase操作。在实际项目中,结合Spring的依赖注入和配置管理,能够有效地提升代码的可...
Hbase JAVA编程开发实验报告以及代码,1 按照“Hbase应用开发实验1.pdf”中给出的说明,完成相关相关实验及JAVA程序的编写、调试和运行,提交JAVA源程序(AccessObject.java, HBaseTester.java, User.java)及运行...
总之,Java操作HBase的最佳实践包括: 1. 使用`HTablePool`管理`HTable`实例,以提高性能和减少资源消耗。 2. 在服务初始化时预获取并关闭`HTable`,确保后续操作的高效性。 3. 使用`Scan`对象进行精细化的查询控制...
为了在Java环境中顺利地操作HBase,开发者需要引入一系列的依赖库,这些库包含了与HBase通信所需的各种类和方法。 首先,`hbase-client.jar`是核心客户端库,包含了与HBase服务器通信的所有必要组件。这个包提供了...