需要导入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的更多相关文章

  1. HBase(一): c#访问hbase组件开发

    HDP2.4安装系列介绍了通过ambari创建hbase集群的过程,但工作中一直采用.net的技术路线,如何去访问基于Java搞的Hbase呢? Hbase提供基于Java的本地API访问,同时扩展了 ...

  2. HBase(二): c#访问HBase之股票行情Demo

    上一章完成了c#访问hbase的sdk封装,接下来以一个具体Demo对sdk进行测试验证.场景:每5秒抓取指定股票列表的实时价格波动行情,数据下载后,一方面实时刷新UI界面,另一方面将数据放入到在内存 ...

  3. docker 安装 hbase安装 java连接hbase (mac环境)

    docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...

  4. Java访问Hbase

    1.kerberos验证 a.下载对应版本JCE(Java Cryptography Extension),解压拷贝local_policy.jar/US_export_policy.jar到$JAV ...

  5. HBase(2) Java 操作 HBase 教程

    目录 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 FAQ 参考文档 一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概 ...

  6. 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  7. Java 操作 HBase 教程

    Java 操作 HBase 教程 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 相关博文原文地址: 博客园:美码师:HBase(2) Java 操作 HBase ...

  8. java操作Hbase实例

    所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...

  9. JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32

    Java使用API访问Hbase报错: 我的hbase主节点是spark1   java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名     修改主机hosts文 ...

  10. Java 调用 Hbase API 访问接口实现方案

    HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...

随机推荐

  1. DDPM论文解读

    DDPM(Denoising Diffusion Probabilistic Models) 论文研究背景 扩散概率模型(Denoising Diffusion Probabilistic Model ...

  2. Qt+OPC开发笔记(一):OPCUA介绍、open62541介绍、编译与基础环境Demo

    前言   本篇介绍OPC协议,相关开源库.编译并搭建Qt开发OPC的基础环境.   Demo      OPC   OPC(OLE for Process Control)是一个工业标准,用于实现工业 ...

  3. WinForm 通用权限框架,简单实用支持二次开发

    前言 开发一个安全.灵活且易于维护的应用程序是至关重要的.特别是在企业级应用中,权限管理不仅涉及到用户访问控制,还关系到数据的安全性和系统的稳定性. 推荐一款 WinForm 通用.完整的权限架构开发 ...

  4. 第一个 milestone:内推 50 人拿到微软 offer!

    就在昨天,我的一位候选人和我说,他已经通过面试,正在 offer 沟通阶段.由此,我达成第一个小里程碑:成功内推 50 人拿到了微软 offer! 内推了多少人? 从 2019 年年初开始内推,到现在 ...

  5. Nuget Reference 丢失问题

    现象 在 Visual Studio 2017 中创建一个控制台项目.创建出来的项目如下所示. 通过 NuGet 管理器,添加 Newtonsoft.Json 的 NuGet 包,安装之后,项目中添加 ...

  6. .NET 9 New features-AOT相关的改进

    上一篇文章给大家介绍了 .NET 9 New features-JSON序列化 本篇文章,研究分享一下关于AOT方面的改进 1. 什么是AOT AOT(Ahead-of-Time)编译是一种在应用程序 ...

  7. IDEA批量实现CRLF转换成LF问题

    需要注意idea项目中右下角:选择LF,否则到时候部署到生产环境上会报错'\r\n'问题,之前的解决方案是 dos2unix 然后很多文件报这个问题,索性进行批量转换,但是很快拉去的新项目又会出现同样 ...

  8. 一场因OpenJDK引发的血案 之JavaFx

    https://zhuanlan.zhihu.com/p/103765203 案发现场 最近做了个项目,本地调试通过了,可在服务器上部署时却编译失败,报错如下 编译失败的原因是缺少javafx.uti ...

  9. [转]OpenLayers基于Vue项目的搭建

    主要内容上次介绍了什么是OpenLayers以及其他的可以GIS工具,这次说说如何基于Vue搭建OpenLayers的项目,并且实现地图的加载. 一.vue项目搭建1.全局安装vue-cil npm ...

  10. OpenGL ES 3.x游戏开发(上+下卷)书籍的电子版+源程序

    直接附上电子书以及源代码下载链接:https://pan.baidu.com/s/1G10hw5aIi-Bc2LyktwKrdg