HBase的简单java操作
官方文档:http://hbase.apache.org/book.html
java简单操作hbase的表
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.junit.Before;
import org.junit.Test; import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random; /**
* Created by Edward on 2016/6/19.
*/
public class TestHbase { public static Configuration conf = null;
public static TableName table = TableName.valueOf("phone");
public static Random random = new Random(); @Before
public void setup()
{
//通过zookeeper集群,访问hbase
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "node1,node2,node3");
System.out.println("setup");
} @Test
public void createTable() throws IOException {
HBaseAdmin hBaseAdmin = new HBaseAdmin(conf);
if(hBaseAdmin.tableExists(table)) {
hBaseAdmin.disableTable(table);
hBaseAdmin.deleteTable(table);
}
//表
HTableDescriptor hTableDescriptor = new HTableDescriptor(table);
//列族 cf1
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("cf1");
hColumnDescriptor.setBlockCacheEnabled(true);
hColumnDescriptor.setBlocksize(128000);
hColumnDescriptor.setMaxVersions(10);
//表增加列族
hTableDescriptor.addFamily(hColumnDescriptor);
hBaseAdmin.createTable(hTableDescriptor);
} @Test
/**
* 插入数据
*/
public void insert() throws IOException { //创建htable对象
HTable hTable = new HTable(conf, this.table);
ArrayList<Put> list = new ArrayList<Put>(); for(int i = 0; i<1000; i++)
{
//row_key
Put put = new Put(String.valueOf(i).getBytes());
//column,value
put.add("cf1".getBytes(),"name".getBytes(),"ls".getBytes());
put.add("cf1".getBytes(),"age".getBytes(), String.valueOf(i%100).getBytes());
//把每个put对象放到列表中
list.add(put);
}
//把信息放到表中
hTable.put(list);
} @Test
/**
* 查询
*/
public void search() throws IOException
{ HTable hTable = new HTable(conf, this.table);
// 创建row_key对应的get对象
Get get = new Get("123".getBytes());
// 获取get结果
Result result = hTable.get(get);
//获取 column latest cell
Cell columnLatestCell = result.getColumnLatestCell("cf1".getBytes(), "name".getBytes());
//使用 CellUtil 获取值
byte[] bytes = CellUtil.cloneValue(columnLatestCell);
System.out.println(new String(bytes));
} @Test
/**
* 通过scan方法获取数据
* **/
public void search1() throws IOException
{
HTable hTable = new HTable(conf, this.table);
//设置scan范围
Scan scan = new Scan("400".getBytes(),"450".getBytes());
//通过scan得到result scanner
ResultScanner scanner = hTable.getScanner(scan);
//使用迭代器
Iterator<Result> iterator = scanner.iterator(); while(iterator.hasNext())
{
Result result= iterator.next();
Cell columnLatestCell = result.getColumnLatestCell("cf1".getBytes(), "age".getBytes());
//获取列族中列对应的值
byte[] bytes = CellUtil.cloneValue(columnLatestCell);
//获取row_key
byte[] bytes1 = CellUtil.cloneRow(columnLatestCell);
System.out.println(new String(bytes)+" "+new String(bytes1));
}
}
}
HBase的简单java操作的更多相关文章
- java操作Hbase实例
所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...
- Hadoop学习(6)-HBASE的安装和命令行操作和java操作
使用HABSE之前,要先安装一个zookeeper 我以前写的有https://www.cnblogs.com/wpbing/p/11309761.html 先简单介绍一下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进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对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总结
用过以后,总得写个总结,不然,就忘喽. 一.寻找操作的jar包. java操作hbase,首先要考虑到使用hbase的jar包. 因为咱装的是CDH5,比较方便,使用SecureCRT工具,远程连接到 ...
- 【Hbase三】Java,python操作Hbase
Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...
- HBase的java操作,最新API。(查询指定行、列、插入数据等)
关于HBase环境搭建和HBase的原理架构,请见笔者相关博客. 1.HBase对java有着较优秀的支持,本文将介绍如何使用java操作Hbase. 首先是pom依赖: <dependency ...
随机推荐
- PHP中的prepare准备语句的意义
mysqli和PDO扩展都有prepare这个语法,刚开始以为只是单纯的语法,没想到,还是有实际意义的: “每次发送查询语句给MySQL服务时,都必须解析该查询的语法,确保结构正确并能够执行.这是这个 ...
- input文字垂直居中和按钮对齐问题,兼容IE8
1.盒子模型问题:请CSS重置 2.按钮不对齐:请浮动或者vertical-align:middle;然后计算宽高,使其对齐 : 3.IE8文本不居中:line-height属性 注意:IE8 ...
- react组件直接在document上添加事件
demo:比如组件里有个div写的框框,点击document body的背景色变红,点击div写的框框没效果 componentDidMount(){ document.onclick = this. ...
- python学习笔记之——python函数
1.定义一个函数 你可以定义一个自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定 ...
- 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc
前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...
- C/S模式下的打印方法
C/S模式使用润乾报表时有两种打印方法(都使用设计器授权) 1. 使用加密狗打印 这种方式需要使用加密狗,适用于客户端较少时 2. 使用api调用打印方法实现打印 ...
- Java类的封装
java中四种不同的限定词限定的成员(成员变量或成员变量方法),访问权限由大到小依次为: public(公共的) 可以被所有的类访问 protected(受保护的) 可以被这个类本身访问 可以被它的子 ...
- 解决升级PHP7.1后,发邮件时提示“fsockopen(): Peer certificate CN=`xxx.xx.com' did not match expected CN=`113.x.xx.98”
把项目环境升级到PHP7.1后,发现在不使用SSL时可以使用IP发邮件,可设置成SSL时就只能使用hostname发送,PHP提示的错误信息大致意思是说,IP与hostname无法通过SSL验证,修改 ...
- PyQt4(简单信号槽)
import sys from PyQt4 import QtCore, QtGui class myWidget(QtGui.QWidget): def __init__(self): super( ...
- Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...