hbase - [04] java访问hbase
需要导入jar包
- $HBASE_HOME/lib下的所有jar包
- $HADOOP_HOME/share/hadoop/common的所有jar包
package com.harley.hbase.test;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class HbaseTest{
protected Connection connection = null;
protected Admin admin = null;
/**
* 创建表所需参数
*/
protected String tableName = "mydata:psn2";
protected String cf = "cf";
@Before
public void init()
{
System.out.println("====init....====");
System.setProperty("hadoop.home.dir","D:/Java/bigdata/bigdata/hadoop-3.2.1");
try {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum","node01:2181,node02:2181,node03:2181");
connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* get
*/
@Test
public void get()
{
Table table = null;
try {
table = this.connection.getTable(TableName.valueOf(this.tableName));
/**
* 参数为 rowkey
*/
Get get = new Get("student".getBytes("UTF-8"));
Result result = table.get(get);
String rowkey = new String(result.getRow(),"UTF-8");
String name = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"name".getBytes("UTF")).getValueArray());
String age = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"age".getBytes("UTF")).getValueArray());
String gender = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"gender".getBytes("UTF")).getValueArray());
System.out.println("---rowkey--->"+rowkey+"----name--->"+name+"---age---->"+age+"----gender--->"+gender);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table!=null){
table.close();
table=null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* scan
*/
@Test
public void scan()
{
Table table = null;
try {
table = this.connection.getTable(TableName.valueOf(tableName));
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
int count = 1;
for (Result result : scanner) {
String rowkey = new String(result.getRow(), "UTF-8");
String name = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"name".getBytes("UTF-8")).getValueArray());
String age = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"age".getBytes("UTF-8")).toString());
String gender = new String(result.getColumnLatestCell(this.cf.getBytes("UTF-8"),"gender".getBytes("UTF-8")).toString());
System.out.println("--条数:"+count+"---rowkey=>"+rowkey+"----name=>"+name+"----age=>"+age+"----gender=>"+gender);
count++;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table!=null){
table.close();
table=null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* put
*/
@Test
public void put()
{
Table table = null;
try {
table = this.connection.getTable(TableName.valueOf(tableName));
/**
* rowkey
*/
Put put = new Put("student01".getBytes("UTF-8"));
/**
* 添加键和值
*/
// put.addColumn(this.cf.getBytes("UTF-8"),"name".getBytes("UTF-8"),"老白".getBytes("UTF-8"));
// put.addColumn(this.cf.getBytes("UTF-8"),"age".getBytes("UTF-8"),"32".getBytes("UTF-8"));
// put.addColumn(this.cf.getBytes("UTF-8"),"gender".getBytes("UTF-8"),"男".getBytes("UTF-8"));
put.addColumn(this.cf.getBytes("UTF-8"),"name".getBytes("UTF-8"),"Tom".getBytes("UTF-8"));
put.addColumn(this.cf.getBytes("UTF-8"),"age".getBytes("UTF-8"),"20".getBytes("UTF-8"));
put.addColumn(this.cf.getBytes("UTF-8"),"gender".getBytes("UTF-8"),"man".getBytes("UTF-8"));
/**
* 相当于事务中的commit
*/
table.put(put);
System.out.println("————————put success——————");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(table!=null)
table.close();
table=null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* create
*/
@Test
public void create()
{
System.out.println("====create....====");
try {
TableDescriptorBuilder tdb = TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName));
ColumnFamilyDescriptor columnFamilyDescriptor = ColumnFamilyDescriptorBuilder.newBuilder(this.cf.getBytes("UTF-8")).build();
TableDescriptor tableDescriptor = tdb.setColumnFamily(columnFamilyDescriptor).build();
this.admin.createTable(tableDescriptor);
System.out.println("-------create success-------");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* list_namespace
*/
@Test
public void list_namespace()
{
try {
NamespaceDescriptor[] namespaceDescriptors = admin.listNamespaceDescriptors();
int count = 1;
for (NamespaceDescriptor namespaceDescriptor : namespaceDescriptors) {
System.out.println(count+"----------"+namespaceDescriptor.getName());
count++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* list
*/
@Test
public void list()
{
System.out.println("——————————list....———————————");
try {
List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();
int count=1;
for (TableDescriptor tableDescriptor : tableDescriptors) {
System.out.println(count+"====="+tableDescriptor.getTableName());
count++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void after()
{
System.out.println("====destroy....====");
try {
if(admin!=null){
admin.close();
admin=null;
}
if(connection!=null)
{
connection.close();
connection=null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
— 要养成终生学习的习惯 —
hbase - [04] java访问hbase的更多相关文章
- HBase(一): c#访问hbase组件开发
HDP2.4安装系列介绍了通过ambari创建hbase集群的过程,但工作中一直采用.net的技术路线,如何去访问基于Java搞的Hbase呢? Hbase提供基于Java的本地API访问,同时扩展了 ...
- HBase(二): c#访问HBase之股票行情Demo
上一章完成了c#访问hbase的sdk封装,接下来以一个具体Demo对sdk进行测试验证.场景:每5秒抓取指定股票列表的实时价格波动行情,数据下载后,一方面实时刷新UI界面,另一方面将数据放入到在内存 ...
- docker 安装 hbase安装 java连接hbase (mac环境)
docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...
- Java访问Hbase
1.kerberos验证 a.下载对应版本JCE(Java Cryptography Extension),解压拷贝local_policy.jar/US_export_policy.jar到$JAV ...
- HBase(2) Java 操作 HBase 教程
目录 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 FAQ 参考文档 一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概 ...
- 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Java 操作 HBase 教程
Java 操作 HBase 教程 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 相关博文原文地址: 博客园:美码师:HBase(2) Java 操作 HBase ...
- java操作Hbase实例
所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...
- JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32
Java使用API访问Hbase报错: 我的hbase主节点是spark1 java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名 修改主机hosts文 ...
- Java 调用 Hbase API 访问接口实现方案
HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...
随机推荐
- 中电金信召开“源启 AI+”人工智能应用场景与发展培训暨业务研讨会
近年来,国务院国资委把加快发展人工智能放在国资央企全局工作中统筹谋划,作为产业焕新行动和启航行动部署的主要方向,制定印发行动计划,组织召开中央企业人工智能专题推进会,开展"AI+" ...
- 【数据库】【MySQL】创建数据库、数据表、修改数据表字段的一些基本操作
这是一份作业,仅此而已. 代码仅供参考. # 创建数据库yggl_mllt9920 CREATE DATABASE yggl_mllt9920; # 选择数据库 USE yggl_mllt9920; ...
- Golang实战:深入解析国密算法在Go语言中的应用与优化
Golang实战:深入解析国密算法在Go语言中的应用与优化 引言 随着信息技术的迅猛发展,数据安全成为企业和个人关注的焦点.国密算法(SM系列算法)作为我国自主研发的密码算法标准,逐渐在各个领域中得到 ...
- Qt编写地图综合应用40-覆盖物弧线
一.前言 弧线可以用来指示某几个点直接弧形的方式绘制线条,尤其是飞机轨迹,起点到终点弧形曲线展示,更美观.百度地图的折线图.矩形图.圆形图等,都统称覆盖物,都是作为覆盖物绘制上去的,这样的好处是速度很 ...
- LetsTalk_Android中引导用户加入白名单图
--------------------------------
- 即时通讯技术文集(第15期):IM跨平台和社交软件红包技术 [共19篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第15 期. [- 1 -] IM跨平台技术学习(一):快速了解新一代跨平台桌面技术--Elec ...
- JMeter JDBC 请求实战宝典
<JMeter JDBC 请求实战宝典> 宝子们,今天咱就来唠唠 JMeter 里超厉害的 JDBC 请求,这玩意儿就像是数据库世界的神奇魔杖,能帮咱把数据库里的各种秘密(数据)都挖出来, ...
- [rustGUI][iced]基于rust的GUI库iced(0.13)的部件学习(00):iced简单窗口的实现以及在窗口显示中文
前言 本文是关于iced库的部件介绍,iced库是基于rust的GUI库,作者自述是受Elm启发. iced目前的版本是0.13.1,相较于此前的0.12版本,有较大改动. 本合集是基于新版本的关于分 ...
- 《CUDA编程:基础与实践》读书笔记(5):统一内存编程
统一内存(unified memory)是一种逻辑上的概念,它既不是显存.也不是主机内存,而是CPU和GPU都可以访问并能保证一致性的虚拟存储器.使用统一内存对硬件有较高的要求: 对于所有功能,GPU ...
- 2025春秋杯DAY2DAY3部分wp
2025春秋杯DAY2DAY3部分wp DAY2 WEB easy_ser 源码如下 <?php //error_reporting(0); function PassWAF1($data){ ...