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 ...
随机推荐
- drupal7 formAPI给元素加css样式
比如,我定义了一个表单元素,名字叫做包库开始日期, $form['starttime_baoyue']=array( '#type'=>'textfield', '#title'=>t(' ...
- css3动画运用
https://daneden.github.io/animate.css/ https://minimamente.com/example/magic_animations/ http://i ...
- 如何将钉钉集成到FineReport插件中
报表服务器 安装钉钉管理插件后,打开报表管理平台,管理系统下会增加钉钉管理节点,钉钉相关的配置管理都将会放在这个节点中去配置: 同时,设置定时任务的最后一步输出设置中,会增加推送钉钉消息: 钉钉企业应 ...
- android 自定义控件之ViewGroup生命周期执行步骤
前言 了解ViewGroup的生命周期的执行步骤对于自己自定义ViewGroup的时候十分重要,清楚了整个流程才能对ViewGroup有更深的理解.本文从个人的总结,来阐述一下执行的顺序.执行说明 首 ...
- linux 网络命令last、lastlog、traceroute、netstat
last /usr/bin/last语法:last功能:列出目前与过去登入系统的用户信息 reboot 是重启信息 lastlog lastlog -u 502(用户ID) traceroute /b ...
- Android组件系列----当前Activity跳转到另一个Activity的详细过程
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- 7.log4j2的使用
一.简介 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等.如 ...
- Oracle诊断工具 - ORA-1578 Troubleshooting Tool
Oracle support网站提供ORA-1578错误诊断工具:ORA-1578 Troubleshooting Tool. ORA-1578 Troubleshooting Tool根据分析上传的 ...
- MySQL字符存储:charset-unicode-sets
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html 10.10.1 Unicode Character Sets MyS ...
- 使用UICollectionView
使用UICollectionView 使用UICollectionView的流程: 1. 设定一个UICollectionViewFlowLayout 2. 使用这个设定的UICollectionVi ...