java api操作
导入开发包
将hbase安装包中lib下包导入java项目
 
创建表
 
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum",
"CentOS01:2181,CentOS02:2181,CentOS03:2181");
 
HBaseAdmin admin = new HBaseAdmin(conf);
 
HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tabe"));
HColumnDescriptor hcd_fam1 = new HColumnDescriptor("fam1");
hcd_fam1.setMaxVersions(3);
HColumnDescriptor hcd_fam2 = new HColumnDescriptor("fam2");
htd.addFamily(hcd_fam1);
htd.addFamily(hcd_fam2);
 
admin.createTable(htd);
 
admin.close();
 
 
插入数据
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");
 
HTable table = new HTable(conf,"tabe");
Put put = new Put(Bytes.toBytes("row1"));
put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col1"),Bytes.toBytes("val1"));
put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col2"),Bytes.toBytes("val2"));
put.add(Bytes.toBytes("fam2"),Bytes.toBytes("col3"),Bytes.toBytes("val3"));
table.put(put);
 
table.close();
 
 
 
**javaapi操作hbase时,入口类为HTable,此对象创建时需要扫描.META表,以及其他操作,这非常耗时,所以,应该将该对象设置为单例,复用该对象,如果需要多个HTable对象,应该使用HTable
Pool,通过对象池复用对象。
HTablePool pool = new HTablePool(conf,10);//不知道为什么过时了?
**hbase所有修改数据的操作都保证了行级别的原子性,
 
试验:一次插入100万条数据
HTable table = new HTable(conf,"tabx");
List<Put> puts = new ArrayList<Put>();
for(int i=1;i<=1000000;i++){
Put put = new Put(Bytes.toBytes("row"+i));
put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col1"),Bytes.toBytes("val"+i))
puts.add(put);
 
if(i % 10000 == 0){
table.put(puts);
puts = new ArrayList<Put>();
}
}
table.put(puts);
table.close();
 
 
获取数据
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");
 
HTable table = new HTable(conf,"tabe");
Get get = new Get(Bytes.toBytes("row1"));
Result result = table.get(get);
byte [] bs = result.getValue(Bytes.toBytes("fam1"),Bytes.toBytes("col1"));
String str = Bytes.toString(bs);
System.out.println(str);
 
table.close();
 
 
获取数据集
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");
 
HTable table = new HTable(conf,"tabe");
Scan scan = new Scan(Bytes.toBytes("row1"));
ResultScanner scanner = table.getScanner(scan);
Iterator it = scanner.iterator();
while(it.hasNext()){
Result result = (Result) it.next();
byte [] bs = result.getValue(Bytes.toBytes("fam1"),Bytes.toBytes("col1"));
String str = Bytes.toString(bs);
System.out.println(str);
}
table.close();
 
 
删除数据
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");
 
HTable table = new HTable(conf,"tabe");
Delete delete = new Delete(Bytes.toBytes("row1"));
table.delete(delete);
table.close();
 
 
删除表
 
//1.创建配置对象
HBaseConfiguration conf = new HBaseConfiguration();
conf.set("hbase.zookeeper.quorum", "CentOS01");
//2.创建HBaseAdmin对象
HBaseAdmin admin = new HBaseAdmin(conf);
//3.删除表
admin.disableTable(Bytes.toBytes("tab1"));
admin.deleteTable(Bytes.toBytes("tab1"));
//4.关闭连接
admin.close();

java api操作的更多相关文章

  1. hive-通过Java API操作

    通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...

  2. hadoop2-HBase的Java API操作

    Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...

  3. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  4. Kafka系列三 java API操作

    使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  5. Hadoop之HDFS(三)HDFS的JAVA API操作

    HDFS的JAVA API操作 HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS ...

  6. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  7. zookeeper的java api操作

    zookeeper的java api操作 创建会话: Zookeeper(String connectString,int sessionTimeout,Watcher watcher) Zookee ...

  8. HDFS 05 - HDFS 常用的 Java API 操作

    目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ...

  9. HDFS基础和java api操作

    1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS ...

随机推荐

  1. 题解 [51nod1771] 最小生成树中的边

    题面 解析 这题好像没人写过啊(所以好像没题解)... 然后刚了一天才写出来摆了半天. 其实一开始是想错了, 写了个\(O(n^2)\)的近似于暴力的方法. 就是对于每组权值相等的边, 对于每条边先把 ...

  2. python计算余弦复杂度

    import numpy as np from sklearn.metrics.pairwise import cosine_similarity a = np.array([1, 2, 3, 4]) ...

  3. Luogu P3527 [POI2011]MET-Meteors 整体二分

    思路:整体二分 提交:4次 错因:树状数组开的$int$ 题解: 二分操作序列,将仅用$[l,md]$即可满足要求的国家递归到左半边,将仅用$[l,md]$不能满足要求的国家,把他们的要求去掉左半边的 ...

  4. luogu P2585 [ZJOI2006]三色二叉树

    P2585 [ZJOI2006]三色二叉树 题目描述 输入输出格式 输入格式: 输入文件名:TRO.IN 输入文件仅有一行,不超过10000个字符,表示一个二叉树序列. 输出格式: 输出文件名:TRO ...

  5. 【线性代数】3-5:独立性,基和维度(Independence,Basis and Dimension)

    title: [线性代数]3-5:独立性,基和维度(Independence,Basis and Dimension) categories: Mathematic Linear Algebra ke ...

  6. c++继承子类构造函数问题

    c++中子类在继承基类的时候需要在构造函数中初始化变量.如果基类没有构造函数或者只有不带参数的构造函数,那么子类中的构造函数就不需要调用基类的构造函数了. 个人总结了两点子类中构造函数必须调用父类的构 ...

  7. AtCoder AGC001E BBQ Hard (DP、组合计数)

    题目链接: https://atcoder.jp/contests/agc001/tasks/agc001_e 题解: 求\(\sum^n_{i=1}\sum^n_{j=i+1} {A_i+A_j+B ...

  8. CodeForces 754C Vladik and chat ——(xjbg)

    虽然是xjbg的题目,但是并不很好做. 题意不难理解.读入有点麻烦.做法是先正着推每段对话的?可能是谁说的,然后反过来选择即可.正推时,其中vis数组表示谁已经被用过了,cnt表示该组当前可以选择几个 ...

  9. ARP输入 之 arp_process

    概述 arp_process为ARP输入包的核心处理流程: 若输入为ARP请求且查路由成功,则进行如下判断:输入到本地,则进行应答:否则,允许转发,则转发,本文代码不包含转发流程: 若输入为ARP应答 ...

  10. 【软件工程】Alpha冲刺 (6/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 tomcat的学习与实现 服务器后端部署,API接口的beta版实现 后端代码 ...