package utils;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.*;

import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

/**

* HBase操作工具类:Java工具类建议采用单例模式封装

*/

public class HBaseUtils {

Admin admin = null;

Configuration configuration = null;

Connection connection = null;

/**

* 私有改造方法

*/

private HBaseUtils(){

configuration = new Configuration();

configuration.set("hbase.zookeeper.quorum", "localhost:2181");

configuration.set("hbase.rootdir", "hdfs://localhost:9000/hbase");

try{

connection = ConnectionFactory.createConnection(configuration);

admin = connection.getAdmin();

}catch (IOException e){

e.printStackTrace();

}

}

private static HBaseUtils instance = null;

public static synchronized HBaseUtils getInstance() {

if(null == instance) {

instance = new HBaseUtils();

}

return instance;

}

/**

* 根据表名获取到Table实例

*/

public Table getTable(String tableName) {

Table table = null;

try {

table = connection.getTable(TableName.valueOf(tableName));

} catch (IOException e) {

e.printStackTrace();

}

return table;

}

/**

* 添加一条记录到HBase表

* @param tableName HBase表名

* @param rowKey HBase表的rowkey

* @param cf HBase表的columnfamily

* @param column HBase表的列

* @param value 写入HBase表的值

*/

public void put(String tableName, String rowKey, String cf, String column, String value){

try {

Table table = connection.getTable(TableName.valueOf(tableName));

Put put = new Put(Bytes.toBytes(rowKey));

put.addColumn(Bytes.toBytes(cf), Bytes.toBytes(column), Bytes.toBytes(value));

table.put(put);

table.close();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 根据行键rowkey查找数据

* @param tableName 表名

* @param rowKey 行键

* @param colFamily 列族名

* @param col 列名

* @throws IOException

*/

public byte[] getData(String tableName,String rowKey,String colFamily,String col){

byte[] result = null;

try {

Table table = connection.getTable(TableName.valueOf(tableName));

Get get = new Get(rowKey.getBytes());

get.addColumn(colFamily.getBytes(),col.getBytes());

result = table.get(get).value();

return result;

}catch (IOException e) {

e.printStackTrace();

}

return result;

}

public static void main(String[] args) {

//HTable table = HBaseUtils.getInstance().getTable("imooc_course_clickcount");

//System.out.println(table.getName().getNameAsString());

String tableName = "course_clickcount" ;

String rowkey = "20171111_88";

String cf = "info" ;

String column = "click_count";

String value = "2";

HBaseUtils.getInstance().put(tableName, rowkey, cf, column, value);

byte[] result = HBaseUtils.getInstance().getData(tableName, rowkey, cf, column);

System.out.println(new String(result));

}

}

Post Views: 4

简单hbase java,Hbase 简单java API 操作相关推荐

  1. 二, 大数据基础架构Hadoop-HDFS入门和基本操作(基本组成, Shell操作, API操作, 读写流程) hf

    一, HDFS概述 1.1 HDFS的产生背景和定义 随着数据量越来越大,我们需要把文件分布存储到多台计算机上,分布式文件管理系统作为一种管理多台机器上文件的系统应运而生, HDFS是其中的一种. H ...

  2. HBase 6、用Phoenix Java api操作HBase

    开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...

  3. 使用 Java API 操作 HBase

    使用 Java API 操作 HBase 数据库,就类似HBase Shell,本质上一个是Java 代码,一个是Shell 命令.(hadoop 的文件系统莫不如此,可用Java API 的方式操作 ...

  4. Hbase java API操作(模板代码)

    Hbase java API操作 1 创建maven工程 导入jar包 <repositories><repository><id>cloudera</id& ...

  5. Hbase 完全分布式模式的搭建、命令行操作、Java API操作

    追风赶月莫停留,平芜尽处是春山. 文章目录 追风赶月莫停留,平芜尽处是春山. 环境 Hbase 完全分布式模式的搭建 一.下载安装包,解压到合适位置: 二.配置相关的文件: 三.将Hbase复制到其他 ...

  6. java api操作hbase_通过JavaAPI使用HBase

    1.准备工作 (1) 启动zookeeper服务,我的是在本地启动zookeeper /usr/local/zookeeper/bin$ sudo zkServer.sh start (2) 启动HB ...

  7. Java Api 操作 Hbase

    文章目录 1.需求 2.思路 2.1 建立远程Hbase集群连接 -- HbaseInit.java 2.2 创建表结构--CreateTable.java 2.3 插入数据 -- PutRow.ja ...

  8. Java调用大数据接口,学习Hadoop第二十八课(java通过调用接口来操作HBase)

    上节课我们一起简单学习了HBase的一些理论,这节课我们一起学习用java调HBase的接口来操作HBase. 我们首先建一个工程,这里我们还用原始的新建一个lib包.然后我们把下载的hbase-0. ...

  9. HBase安装配置以及Java操作hbase

    2019独角兽企业重金招聘Python工程师标准>>> Apache HBase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据 ...

最新文章

  1. 2022-2028年中国塑料板的制造行业市场发展模式及竞争格局预测报告
  2. Navicat控制mysql用户权限
  3. biti_rainy的面试题
  4. Country Road Aizu - 2104
  5. VDI序曲二十七 IE7,IE8,IE9应用程序虚拟化
  6. 计算机标准化管理制度,计算机中心标准化管理.doc
  7. C#datagidview创立数据库,实现读写数据视频
  8. mysql5.0查询表_Mysql5.0查询表结构 | 学步园
  9. 【云原生之Docker实战】使用docker部署Wiznote私人笔记系统
  10. xml的三种解析方法
  11. 未能加载程序集oracle.dataaccess 控制台,未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序...
  12. 一花一世界,在微服务中定义边界
  13. 最简单的python使用ddddocr模块在线识别验证码后登录
  14. idea之自定义注释模板
  15. library not found for -lstdc++和dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib解决
  16. 怎么把游戏隐藏到计算机,怎么将电脑游戏隐藏桌面
  17. 网络:简述对CT,IT,ICT,OT的认识
  18. 基于python编写一个名片管理系统
  19. [质数筛] 质数筛算法详解
  20. Linux下ion内存,android内存管理-ION/PMEM

热门文章

  1. windows dos 命令
  2. 标准模板库(STL)之无序容器列传
  3. STL 中的容器们(三)
  4. python从入门到精通 明日科技 电子书-Python从入门到精通(明日科技出版) 源代码+课件+视频 全套...
  5. python基础-菜鸟世界 -python基础---set
  6. python可以做什么-学会Python后都能做什么?网友们的回答简直不要太厉害
  7. python爬虫菜鸟教程-Python 应该怎么学?
  8. python自动化办公excel-自动化办公:python 操作Excel
  9. python自动化办公教程-python办公自动化:Excel操作入门
  10. python画折线图-python绘制简单折线图代码示例