一、
配置
windows hosts
添加Linux映射
否则,运行时报错,unknowHostException
二、
package com.study.demo;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
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.junit.Test;
public class HbaseDemo {
@Test
public void testDropTable() throws Exception {
// 配置文件
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HBaseAdmin admin = new HBaseAdmin(conf);
// 删除表,删除前需先禁用表,然后才会删除,否则,无效
admin.disableTable("hbase_test".getBytes());
admin.deleteTable("hbase_test".getBytes());
admin.close();
}
/**
* 删除数据
* @throws Exception
*/
@Test
public void testDeleteData() throws Exception{
// 配置文件
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HTable table = new HTable(conf, "hbase_test".getBytes());
// 指定删除数据的行健:rk1
Delete delete = new Delete("rk1".getBytes());
table.delete(delete);
table.close();
}
/**
* 修改数据
* 与插入数据一样,只是列中的value变化了
* @throws Exception
*/
@Test
public void testUpdateData() throws Exception{
// 配置文件
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HTable table = new HTable(conf, "hbase_test".getBytes());
// 插入一行数据:行健
Put put = new Put("rk1".getBytes());
// 添加列名称:根据列族名称,添加列名、列中值
put.add("cf1".getBytes(), "cell".getBytes(), "cellValue".getBytes());
table.put(put);
// 关闭连接
table.close();
}
/**
* 获取某列的数据
* @throws Exception
*/
@Test
public void testGetCell() throws Exception{
// 配置文件
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HTable table = new HTable(conf, "hbase_test".getBytes());
// 获取行健rk1的数据
Get get = new Get("rk1".getBytes());
// 获取列族cf1中cell列中的数据
get.addColumn("cf1".getBytes(), "cell".getBytes());
// 数据存储为二进制格式,需要由byte[] --> string
Result result = table.get(get);
byte[] bytes = result.getValue("cf1".getBytes(), "cell".getBytes());
System.out.println("列中数据为:"+new String(bytes));
table.close();
}
/**
* 插入数据
* @throws Exception
*/
@Test
public void testInsertData() throws Exception{
// 配置文件
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HTable table = new HTable(conf, "hbase_test".getBytes());
// 插入一行数据:行健
Put put = new Put("rk1".getBytes());
// 添加列名称:根据列族名称,添加列名、列中值
put.add("cf1".getBytes(), "cell".getBytes(), "value".getBytes());
table.put(put);
// 关闭连接
table.close();
// 进入hbase : hbase shell ; scan "hbase_test" ; 查看数据已插入表中
}
/**
* windows 上 hosts 文件中添加 linux01 linux02 linux03 的映射
* 否则,运行报错,unknownHostException linux02
*/
@Test
public void testCreate() throws Exception{
// 配置文件
Configuration c = new Configuration();
// zookeeper
c.set("hbase.zookeeper.quorum", "linux01:2181,linux02:2181,linux03:2181");
HBaseAdmin admin = new HBaseAdmin(c);
// 表名称
TableName name = TableName.valueOf("hbase_test".getBytes());
HTableDescriptor table = new HTableDescriptor(name );
// 列族
HColumnDescriptor family = new HColumnDescriptor("cf1");
table.addFamily(family);
HColumnDescriptor family1 = new HColumnDescriptor("cf2");
table.addFamily(family1);
admin.createTable(table);
// 关闭连接
admin.close();
// 启动 hbase shell
// list 命令查看
}
}
分享到:
相关推荐
HBase Java API HBase 是 Hadoop 的数据库,能够对大数据提供随机、实时读写访问。他是开源的,分布式的,多版本的,面向列的,存储模型。HBase 的整体结构主要包括 HBase Master、HRegion 服务器和 HRegion Server...
### HBase Java API类介绍 #### 一、概述 HBase是一个分布式的、面向列的开源数据库,基于Google的Bigtable论文实现。它适合于非结构化数据存储,并且能够实时处理PB级别的数据。HBase提供了Java API供开发者使用...
在本文中,我们将深入探讨如何使用HBase的Java API进行数据的增加、修改和删除操作。HBase是一个基于Google Bigtable设计的开源分布式数据库,它属于Apache Hadoop生态系统的一部分,适用于处理大规模数据存储。通过...
在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...
"hbase java api 所需最精简 jar"这个标题意味着我们将探讨的是为了在Java环境中最小化依赖,但仍能实现基本HBase操作所需的JAR文件。 首先,我们需要理解HBase Java API的核心组件。HBase的Java客户端API提供了一...
HBase Java API 编程实践 在本实践中,我们将使用 Eclipse 编写 Java 程序,来对 HBase 数据库进行增删改查等操作。首先,我们需要启动 Hadoop 和 HBase,然后新建一个 Java 项目并导入 HBase 的 jar 包。接着,...
HBase Java API操作数据库示例代码-HBaseDemo.rar HBase Java API操作数据库示例代码-HBaseDemo.rar HBase Java API操作数据库示例代码-HBaseDemo.rar
使用JavaAPI实现HBase的ddl(创建表、删除表、修改表(添加列族等))、dml(添加数据、删除数据)、dql(查询数据(get、scan))等操作 除此之外还包含一些其他操作:命名空间的应用、快照的应用等 对应(《HBase...
这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase中批量导入数据。在这个过程中,我们将探讨以下几个关键知识点: 1. **HBase架构**: HBase是基于列族的存储模型,数据被...
在HBase Java API使用方面,HBaseConfiguration对象是每个HBase客户端都需要使用的,它代表了HBase的配置信息。可以通过默认构造函数来创建HBaseConfiguration对象,它会尝试从类路径中的hbase-default.xml和hbase-...
标题 "Hadoop+HBase+Java API" 涉及到三个主要的开源技术:Hadoop、HBase以及Java API,这些都是大数据处理和存储领域的关键组件。以下是对这些技术及其结合使用的详细介绍: **Hadoop** 是一个分布式计算框架,由...
Hadoop平台技术 5.4.2 HBase Java API应用-教学课件
HBase数据查询API HBase是一种分布式的、面向列的NoSQL数据库,主要应用于存储大量的半结构化数据。HBase提供了多种查询方式,包括单条查询和批量查询。 单条查询 单条查询是通过rowkey在table中查询某一行的数据...
在本文中,我们将深入探讨如何使用Java API连接到运行在虚拟机上的HBase数据库,并进行相关的数据操作。HBase是一个分布式的、版本化的、基于列族的NoSQL数据库,它构建于Hadoop之上,适用于处理大规模的数据存储和...
在Java中,我们可以使用HBase的Java API来与HBase交互,进行数据的读写操作。下面将详细介绍HBase Java API的核心概念和常用方法。 1. **连接HBase** 要连接到HBase,你需要创建一个`Configuration`对象,然后通过...
在Java环境中,HBase提供了丰富的Java API供开发者进行数据操作,包括创建表、删除表、更新表以及查询表等基本功能。下面我们将深入探讨HBase的Java API及其在实际应用中的使用。 1. **HBase连接** 在Java中使用...
本节通过一个具体的编程实例来学习如何使用 HBase Java API 解决实际问题。在本实例中,首先创建一个学生成绩表 scores,用来存储学生各门课程的考试成绩,然后向 scores 添加数据。 表 scores 的概念视图如图 1 所...
Java SpringBoot 连接 Hbase Demo 创建表 插入数据 列族 列 查询:全表、数据过滤 删除数据 删除表 Hbase 集群搭建:https://blog.csdn.net/weixin_42176639/article/details/131796472
本文将深入探讨ella-hbase-0.96.2版本,它是基于ella hbase-0.94进行改进的,主要特点是取消了对JMX(Java Management Extensions)数据获取的依赖,转而采用标准的HBase Java API进行数据访问。 首先,我们来理解...
本压缩包"javaApi_sparkhiveAPI_hbaseAPI.zip"包含了2019年8月至10月期间针对这些技术的Java版API实现,以及与Spark相关的Hive和HBase API。以下是关于这些技术的详细知识: 1. **Java API for Hive**: - **Hive*...