Hbase1.3.1基于Hadoop2.7.1上,相关基本操作代码示例
package com.xiva.cloud.study.hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Table; /** * Hbase相关操作示例 */ public class HbaseUtils { public static void main( String[] args ) { try { // createTable(); // putData(); // getData(); // createNamespace(); // createTableUseNamespace(); deleteData(); } catch (Exception e) { e.printStackTrace(); } } public static void createNamespace() throws Exception { Connection conn = getConnection(); Admin admin = conn.getAdmin(); NamespaceDescriptor descriptor = NamespaceDescriptor.create("ajbzns").build(); admin.createNamespace(descriptor); admin.close(); } public static void deleteData() throws Exception { Table table = getTable("AJ_RECORD"); Delete delete = new Delete("r000001".getBytes()); table.delete(delete ); table.close(); } public static void getData() throws Exception { Table table = getTable("AJ_RECORD"); Get get = new Get("r000001".getBytes()); Result result = table.get(get); /*byte[] byteVals = result.getValue("bztag".getBytes(), "afdz".getBytes()); System.out.println(new String(byteVals));*/ for (Cell cell : result.rawCells()) { System.out.print(new String(CellUtil.cloneQualifier(cell)) + ":"); System.out.println(new String(CellUtil.cloneValue(cell))); } table.close(); } public static void putData() throws Exception { Table table = getTable("AJ_RECORD"); Put put = new Put("r000001".getBytes()); put.addColumn("bztag".getBytes(), "afdz".getBytes(), "深圳市南山区桃园地铁站".getBytes()); put.addColumn("bztag".getBytes(), "dqwp".getBytes(), "苹果手机".getBytes()); put.addColumn("baseinfo".getBytes(), "ajbh".getBytes(), "A4403053400002017080500003".getBytes()); put.addColumn("baseinfo".getBytes(), "ajmc".getBytes(), "苹果手机***".getBytes()); table.put(put); table.close(); } public static Table getTable(String tableName) throws Exception { Connection conn = getConnection(); Table table = conn.getTable(TableName.valueOf(tableName)); return table; } public static Connection getConnection() throws IOException { // create config Configuration config = HBaseConfiguration.create(); config.addResource("hbase-site.xml"); Connection conn = ConnectionFactory.createConnection(config); return conn; } public static void createTable() throws Exception { Connection conn = getConnection(); // get a admin from connection Admin admin = conn.getAdmin(); TableName ajbzTable = TableName.valueOf("AJ_RECORD"); boolean exist = admin.tableExists(ajbzTable); // 判断表是否存在 if (exist) { admin.disableTable(ajbzTable); admin.deleteTable(ajbzTable); } HTableDescriptor desc = new HTableDescriptor(ajbzTable); desc.addFamily(new HColumnDescriptor("bztag")); desc.addFamily(new HColumnDescriptor("baseinfo")); admin.createTable(desc); admin.close(); } public static void createTableUseNamespace() throws Exception { Connection conn = getConnection(); // get a admin from connection Admin admin = conn.getAdmin(); TableName ajbzTable = TableName.valueOf("ajbzns", "AJ_RECORD_BANK"); boolean exist = admin.tableExists(ajbzTable); // 判断表是否存在 if (exist) { admin.disableTable(ajbzTable); admin.deleteTable(ajbzTable); } HTableDescriptor desc = new HTableDescriptor(ajbzTable); desc.addFamily(new HColumnDescriptor("bztag")); desc.addFamily(new HColumnDescriptor("baseinfo")); admin.createTable(desc); admin.close(); } }
除了引用下面的POM文件,还需要在工程中导入hbase-site.xml文件,否则需要在config变量中指定zk地址或者在环境变量中指定。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xiva.cloud.study</groupId> <artifactId>hbase</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>hbase</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.version>2.7.1</hadoop.version> </properties> <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
相关推荐
Java 操作 Hbase 进行建表、删表以及对数据进行增删改查 一、Hbase 简介 Hbase 是一个开源的、分布式的、基于 column-family 的 NoSQL 数据库。它是基于 Hadoop 的,使用 HDFS 作为其存储层。Hbase 提供了高性能、...
Java链接HBase进行增删改查操作是大数据领域常见的任务,尤其在处理大规模分布式存储时。HBase,作为Apache Hadoop生态系统的一部分,是一个基于列族的NoSQL数据库,提供了高性能、高可扩展性的数据存储解决方案。这...
示例:`hbase> alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}`,这里的`PROPERTY_NAME`和`PROPERTY_VALUE`分别代表你要修改的属性名和值。 ### 表管理 表是HBase中的基本数据...
它支持对HBase表进行增删改查等一系列操作,对于开发人员和系统管理员来说是非常实用的工具之一。本文将基于提供的描述和部分代码示例,深入讲解HBase Shell的操作方法。 ### 创建表 在HBase中,表由行键(Row Key...
在本项目中,我们将关注如何使用C#语言通过Thrift2来操作Hbase数据库,实现数据的增、删、改、查(CRUD)功能。 1. **Thrift2与Hbase的交互** Thrift2提供了一种灵活的方式与Hbase进行交互。首先,我们需要在Hbase...
3. **Mapper接口**:MybatisPlus中的Mapper接口将定义SQL操作,如增删改查。 4. **Service层**:这是业务逻辑的主要实现部分,调用Mapper接口进行数据操作。 5. **Controller层**:定义RESTful API,接收HTTP请求并...
3. **数据操作**:演示如何使用HBase Shell进行增删改查操作,如`put`、`get`、`scan`、`delete`等命令。 4. **Java API**:深入介绍如何通过Java编程来与HBase交互,包括连接HBase、创建表、写入和读取数据的示例...
HTableDescriptor在HTableDescriptor中,建立了一个表结构,HTableDescriptor封装表格对象,对表格的增删改查操作主要通过它来完成。HTableDescriptor可以通过HTableDescriptor(TableName.valueOf(“表名”))方法...
HBase提供了简单的编程模型,通过API可以对数据进行增删改查的操作。 《Apache HBase Reference Guide》是Apache HBase官方的使用指南,详细解释了如何安装、配置和使用HBase。在这份指南中,用户可以了解到HBase的...
然后,我们可以利用ORM工具进行数据的增删改查: ```java // 创建 User user = new User(); user.setId("1"); user.setName("张三"); user.setEmail("zhangsan@example.com"); orm.save(user); // 查询 User ...
- **DML**(Data Manipulation Language):用于数据的增删改查操作。 - **HBase命令行工具**:提供了丰富的命令来操作HBase表。 #### 五、Eclipse下开发HBase - **安装HBase插件**:使用Eclipse Marketplace...
这篇文档将详细介绍如何使用Phoenix通过JDBC(Java Database Connectivity)连接到HBase数据库,并进行相关的数据操作,如表的创建、删除以及数据的增删改查。 首先,理解Phoenix的作用至关重要。Phoenix提供了SQL...
- Hbase提供了Java API,可以用于在Java应用程序中直接操作Hbase数据库,进行数据的增删查改操作。 - 例如,使用`HBaseAdmin`类创建和管理表,使用`Table`对象进行数据的put和get,以及`Scan`对象进行表的扫描。 ...
学习HBase 0.20.0,你需要了解其基本架构、数据模型、API使用以及如何进行数据的增删改查操作。同时,掌握如何配置和优化HBase以适应不同的应用场景也非常重要。随着HBase的不断发展,更高级的功能如 Coprocessors、...
本示例将通过Java API详细介绍如何进行Hbase的基本操作,包括增、删、改、查以及创建表。 首先,我们需要在Java项目中引入Hbase的相关依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>...
在SpringBoot项目中,可以通过Phoenix的JDBC驱动与HBase进行交互,进行数据的增删改查操作。 【MyBatis】 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...
4. Java API:HBase的主要编程接口是Java API,提供了Table、Get、Put、Scan等对象,方便进行增删改查操作。同时,HBase也支持非Java的客户端,如Python、C++、Ruby等,这些客户端通常通过Thrift或REST接口与HBase...