package com.utils;





import java.io.IOException;

import java.util.ArrayList;

import java.util.List;





import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HColumnDescriptor;

import org.apache.hadoop.hbase.HTableDescriptor;

import org.apache.hadoop.hbase.KeyValue;

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.HTableInterface;

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

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

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

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

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

import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;

import org.apache.hadoop.hbase.filter.PrefixFilter;

import org.apache.hadoop.hbase.filter.RegexStringComparator;

import org.apache.hadoop.hbase.filter.RowFilter;





public class HBaseTest {

HBaseAdmin admin=null;

Configuration conf=null;

/**

* 构造函数载入配置

*/

public HBaseTest(){

conf = new Configuration();

conf.set("hbase.zookeeper.quorum","192.168.80.20,192.168.80.21,192.168.80.22");

conf.set("hbase.rootdir", "hdfs://cluster/hbase");

conf.set("hbase.master", "192.168.80.20:60010");

try {

admin = new HBaseAdmin(conf);

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) throws Exception {

HBaseTest hbase = new HBaseTest();

//创建一张表

hbase.createTable("stu","cf");

// //查询全部表名

// hbase.getALLTable();

// //往表中加入一条记录

// hbase.addOneRecord("stu","key1","cf","name","zhangsan");

// hbase.addOneRecord("stu","key1","cf","age","24");

// //查询一条记录

// hbase.getKey("stu","key1");

// //获取表的全部数据

// hbase.getALLData("stu");

// //删除一条记录

// hbase.deleteOneRecord("stu","key1");

// //删除表

// hbase.deleteTable("stu");

//scan过滤器的使用

hbase.getScanData("stu","cf","age");

//rowFilter的使用

//84138413_20130313145955

hbase.getRowFilter("waln_log","^*_201303131400\\d*$");

}





public void getRowFilter(String tableName, String reg) throws Exception {

HTable hTable = new HTable(conf, tableName);

Scan scan = new Scan();

RowFilter rowFilter = new RowFilter(CompareOp.NOT_EQUAL, new RegexStringComparator(reg));

scan.setFilter(rowFilter);

ResultScanner scanner = hTable.getScanner(scan);

for (Result result : scanner) {

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

}

}

public void getScanData(String tableName, String family, String qualifier) throws Exception {

HTable hTable = new HTable(conf, tableName);

Scan scan = new Scan();

scan.addColumn(family.getBytes(), qualifier.getBytes());

ResultScanner scanner = hTable.getScanner(scan);

for (Result result : scanner) {

if(result.raw().length==0){

System.out.println(tableName+" 表数据为空!

");

}else{

for (KeyValue kv: result.raw()){

System.out.println(new String(kv.getKey())+"\t"+new String(kv.getValue()));

}

}

}

}

private void deleteTable(String tableName) {

try {

if (admin.tableExists(tableName)) {

admin.disableTable(tableName);

admin.deleteTable(tableName);

System.out.println(tableName+"表删除成功。");

}

} catch (IOException e) {

e.printStackTrace();

System.out.println(tableName+"表删除失败!

");

}



}

/**

* 删除一条记录

* @param tableName

* @param rowKey

*/

public void deleteOneRecord(String tableName, String rowKey) {

HTablePool hTablePool = new HTablePool(conf, 1000);

HTableInterface table = hTablePool.getTable(tableName);

Delete delete = new Delete(rowKey.getBytes());

try {

table.delete(delete);

System.out.println(rowKey+"记录删除成功!");

} catch (IOException e) {

e.printStackTrace();

System.out.println(rowKey+"记录删除失败!");

}

}

/**

* 获取表的全部数据

* @param tableName

*/

public void getALLData(String tableName) {

try {

HTable hTable = new HTable(conf, tableName);

Scan scan = new Scan();

ResultScanner scanner = hTable.getScanner(scan);

for (Result result : scanner) {

if(result.raw().length==0){

System.out.println(tableName+" 表数据为空!");

}else{

for (KeyValue kv: result.raw()){

System.out.println(new String(kv.getKey())+"\t"+new String(kv.getValue()));

}

}

}

} catch (IOException e) {

e.printStackTrace();

}



}

/**

* 查询一条记录

* @param tableName

* @param rowKey

*/

public void getKey(String tableName, String rowKey) {

HTablePool hTablePool = new HTablePool(conf, 1000);

HTableInterface table = hTablePool.getTable(tableName);

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

try {

Result result = table.get(get);

if (result.raw().length==0) {

System.out.println("查询的关键词"+rowKey+"不存在");

}else {

for (KeyValue kv : result.raw()) {

System.out.println(new String(kv.getKey())+"\t"+new String(kv.getValue()));

}

}

} catch (IOException e) {

e.printStackTrace();

}

}



/**

* 往表中加入一条记录

* @param tableName

* @param rowKey

* @param column

* @param qua

* @param value

*/

public void addOneRecord(String tableName, String rowKey, String column,

String qua, String value) {

HTablePool hTablePool = new HTablePool(conf, 1000);

HTableInterface table = hTablePool.getTable(tableName);

Put put = new Put(rowKey.getBytes());

put.add(column.getBytes(), qua.getBytes(), value.getBytes());

try {

table.put(put);

System.out.println("加入记录 "+rowKey+ " 成功!

");

} catch (IOException e) {

e.printStackTrace();

System.out.println("加入记录 "+rowKey+ " 失败。");

}

}

/**

* 查询全部表名

* @return

* @throws Exception

*/

public List<String> getALLTable() throws Exception {

ArrayList<String> tables = new ArrayList<String>();

if(admin!=null){

HTableDescriptor[] listTables = admin.listTables();

if (listTables.length>0) {

for (HTableDescriptor tableDesc : listTables) {

tables.add(tableDesc.getNameAsString());

System.out.println(tableDesc.getNameAsString());

}

}

}

return tables;

}

/**

* 创建一张表

* @param tableName

* @param column

* @throws Exception

*/

public void createTable(String tableName, String column) throws Exception {

if(admin.tableExists(tableName)){

System.out.println(tableName+"表已经存在。");

}else{

HTableDescriptor tableDesc = new HTableDescriptor(tableName);

tableDesc.addFamily(new HColumnDescriptor(column.getBytes()));

admin.createTable(tableDesc);

System.out.println(tableName+"表创建成功!");

}

}

}

hbase 增删改查 api 简单操作的更多相关文章

  1. C# 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  2. C# 对MongoDB 进行增删改查的简单操作 (转)

    运用到的MongoDB支持的C#驱动,当前版本为1.6.0 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 1,连接数据库 ...

  3. MongoDB入门 常用命令以及增删改查的简单操作

    1,运行MongoDB服务mongod --dbpath=/usr/local/developmentTool/mongo/data/db/然后启动客户端mongo2,sudo service mon ...

  4. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  5. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

  6. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  7. MongoDB - 增删改查及聚合操作

    目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...

  8. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  9. HBase入门操作 常用命令和增删改查的简单应用操作

    这里启动关闭Hadoop和HBase的顺序一定是: 启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop ssh localhost 开启hadoopcd /us ...

随机推荐

  1. 大项目之网上书城(六)——个人页面和书页面Demo

    目录 大项目之网上书城(六)--个人页面和书页面Demo 主要改动 1.user.jsp 代码 效果图 user.js 代码 3.shu.jsp 代码 效果图 4.其他小改动 LoginServlet ...

  2. 一次偶遇 IOException

    今天遇到了个挺有意思的事情,为了实现上传头像的功能,这是需要实现的功能,项目在本地跑起来且在本地 服务器(tomcat)也实现了头像上传,并把头像路径存入数据库,但是却在上传到线上服务器的时候死活存不 ...

  3. 商业研究(20):滴滴出行,进军海外包车?与OTA携程和包车创业公司,共演“三国杀”?看看分析师、投资人和权威人士等10个人的观点碰撞

     小雷友情提示:创业有风险,投资需谨慎.      前一篇文章,在探讨境外游创业公司-皇包车和易途8的时候,提到"滴滴如果进军海外包车,为海外华人提供打车和包车服务,有较大可能对海外包车公司 ...

  4. 对SpringMVC框架的理解(转)

    SpringMVC概念:     他是一个轻量级的开源框架,应用于表现层,基于MVC的设计模式. SpringMVC的特点:     1.他是单例的可以设置成多例.     2.他的线程是安全的    ...

  5. 关于Filter中ServletRequest和ServletResponse强转HttpServletRequest和HttpServletResponse安全问题(向下转型一定不安全吗?)

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOE ...

  6. Thawte SSL Web Server

      Thawte SSL Web Server ,需要验证域名所有权和申请单位信息,属于企业验证(OV)型SSL证书,提供40位/56位/128位,最高支持256位的自适应加密.被2048位的根证书签 ...

  7. 编程数学(A-1)-(B-1)-一个数的负次方怎么算

    一个数的负几次方就是这个数的几次方的倒数.当这个数是正整数时,也就是说一个数的负n次方就是这个数的n次方分之一.例如: 2的-2次方=2的2次方分之1=4分之13的-2次方=3的2次方分之1=9分之1 ...

  8. 1016-Prime Ring Problem,素数环,深搜!

    Prime Ring Problem                                                                                   ...

  9. CentOS 7 & Chinese Fonts bug

    CentOS 7 & Chinese Fonts bug # check $ yum grouplist $ yum grouplist hidden # root $ yum groupin ...

  10. CSU 1225 最长上升子序列并记录其个数

    ;j<i;j++){ if(h[i] > h[j]){ ) cnt[i]+=cnt[j]; ) len[i] = len[j] + , cnt[i] = cnt[j]; } //身高相同的 ...