import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.util.ArrayList; public class HbaseClients {
public static Connection connection;
public static void main(String[] args) throws Exception {
create("kgc","cf1","cf2","cf3");
//delete("kgc");
//scan("test02");
}
//初始化的参数,连接对象
static {
//conf
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "192.168.159.110");
conf.set("hbase.zookeeper.property.clientPort","");
//获取hbase链接对象ConnectionFactory
try {
connection = ConnectionFactory.createConnection(conf);
} catch (IOException e) {
e.printStackTrace();
}
}
//创建表
public static void create(String table,String ... familys) throws Exception {
//首先要拿到admin
Admin admin = connection.getAdmin();
//new
HTableDescriptor htable = new HTableDescriptor(TableName.valueOf(table));
//htable
for (String family : familys) {
htable.addFamily(new HColumnDescriptor(family));
}
admin.createTable(htable);
System.out.println("创建成功");
}
//删除表
public static void delete(String table) throws Exception {
Admin admin = connection.getAdmin();
//判断表是否存在
if(admin.tableExists(TableName.valueOf(table))){
//下线了
admin.disableTable(TableName.valueOf(table));
//删除
admin.deleteTable(TableName.valueOf(table));
System.out.println("删除成功");
}else{
System.out.println("对不起,表不存在");
}
}
//添加数据
public static void adddata(String table,String rowkey,String columnFamily,String column,String value) throws Exception {
Table table1 = connection.getTable(TableName.valueOf(table));
//NEW PUT
Put puts = new Put(Bytes.toBytes(rowkey));
//puts
puts.add(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));
table1.put(puts);
System.out.println("添加数据成功");
}
//删除一行(rowkey)数据
public static void delterow(String table,String rowkey) throws Exception {
Table table1 = connection.getTable(TableName.valueOf(table));
//new Delete
Delete deletes = new Delete(Bytes.toBytes(rowkey));
//删除
table1.delete(deletes);
System.out.println("删除一行数据成功");
}
//删除多行数据
public static void deleterows(String table,String ... rowkeys) throws Exception {
Table table1 = connection.getTable(TableName.valueOf(table));
//new List
ArrayList<Delete> list = new ArrayList<>();
for (String rowkey : rowkeys) {
list.add(new Delete(Bytes.toBytes(rowkey)));
}
table1.delete(list);
System.out.println("删除多行成功");
}
//scan扫描
public static void scan(String table) throws Exception {
Table table1 = connection.getTable(TableName.valueOf(table));
//new Scan
Scan scan = new Scan();
//results 就是所有的rowkey的集合
ResultScanner results = table1.getScanner(scan);
for (Result result : results) {
//cells 的集合
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
System.out.println(Bytes.toString(cell.getRow()));
System.out.println(Bytes.toString(cell.getFamily()));
System.out.println(Bytes.toString(cell.getQualifier()));
System.out.println(Bytes.toString(cell.getValue()));
}
}
}
//get
public static void get(String table,String rowkey) throws Exception {
Table table1 = connection.getTable(TableName.valueOf(table));
//new Get
Get get = new Get(Bytes.toBytes(rowkey));
Result result = table1.get(get);
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
System.out.println(Bytes.toString(cell.getRow()));
System.out.println(Bytes.toString(cell.getFamily()));
System.out.println(Bytes.toString(cell.getQualifier()));
System.out.println(Bytes.toString(cell.getValue()));
}
}
}

hbase的API的更多相关文章

  1. Hbase客户端API基础小结笔记(未完)

    客户端API:基础 HBase的主要客户端接口是由org.apache.hadoop.hbase.client包中的HTable类提供的,通过这个类,用户可以完成向HBase存储和检索数据,以及删除无 ...

  2. HBase伪分布式环境下,HBase的API操作,遇到的问题

    在hadoop2.5.2伪分布式上,安装了hbase1.0.1.1的伪分布式 利用HBase的API创建个testapi的表时,提示  Exception in thread "main&q ...

  3. 使用hbase的api创建表时出现的异常

    /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...

  4. hbase rest api接口链接管理【golang语言版】

    # go-hbase-resthbase rest api接口链接管理[golang语言版]关于hbase的rest接口的详细信息可以到官网查看[http://hbase.apache.org/boo ...

  5. HBase Python API

    HBase Python API HBase通过thrift机制可以实现多语言编程,信息通过端口传递,因此Python是个不错的选择 吐槽 博主在Mac上配置HBase,奈何Zoomkeeper一直报 ...

  6. Hadoop生态圈-Hbase的API常见操作

    Hadoop生态圈-Hbase的API常见操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  7. HBase编程 API入门系列之create(管理端而言)(8)

    大家,若是看过我前期的这篇博客的话,则 HBase编程 API入门系列之put(客户端而言)(1) 就知道,在这篇博文里,我是在HBase Shell里创建HBase表的. 这里,我带领大家,学习更高 ...

  8. hbase java api样例(版本1.3.1,新API)

    hbase版本:1.3.1 目的:HBase新API的使用方法. 尝试并验证了如下几种java api的使用方法. 1.创建表 2.创建表(预分区) 3.单条插入 4.批量插入 5.批量插入(客户端缓 ...

  9. HBase编程 API入门系列之delete(客户端而言)(3)

    心得,写在前面的话,也许,中间会要多次执行,连接超时,多试试就好了. 前面的基础,如下 HBase编程 API入门系列之put(客户端而言)(1) HBase编程 API入门系列之get(客户端而言) ...

  10. HBase编程 API入门系列之get(客户端而言)(2)

    心得,写在前面的话,也许,中间会要多次执行,连接超时,多试试就好了. 前面是基础,如下 HBase编程 API入门系列之put(客户端而言)(1) package zhouls.bigdata.Hba ...

随机推荐

  1. MongoDB的使用学习之(四)权限设置--用户名、密码、端口==

    本文参照:http://hi.baidu.com/tianhuimin/item/590d96cfd7ac1509c610b26a 本人也是按照此文章操作的,但是有些不妥,红色文字就是我实践后,需要改 ...

  2. NSString用法,object-C数组以及字符串拼接和分割

    一.介绍使用NSString创建一个字符串的代码如下: #import <Foundation/Foundation.h>int main (int argc, char *argv[]) ...

  3. java交换两个变量值a,b的多钟方法

    首先我们定义两个变量用来检查方法可行性 int a=5; int b=3; 方法一,也是最容易想到的,就是建立中间变量法 int temp; temp=a; a=b; b=temp; System.o ...

  4. centos7 安装 tesseract4.1

    官网大法好,其他方法需要装好多依赖,还没安装成功...     yum-config-manager --add-repo https://download.opensuse.org/reposito ...

  5. Codeforces Round #427 (Div. 2) - D

    题目链接:http://codeforces.com/contest/835/problem/D 题意:给定一个字符串,定义kth回文是左半部分等于右半部分,并且左半部分和右半部分都是(k-1)th回 ...

  6. luoguP1445 [Violet]樱花

    链接P1445 [Violet]樱花 求方程 \(\frac {1}{X}+\frac {1}{Y}=\frac {1}{N!}\) 的正整数解的组数,其中\(N≤10^6\),模\(10^9+7\) ...

  7. Django【第8篇】:Django之查询知识点总结

    关于查询知识点总结 models.Book.objects.filter(**kwargs): querySet [obj1,obj2]models.Book.objects.filter(**kwa ...

  8. CSS3——制作图片翻页的小动画

    觉得还挺有意思的嘻嘻~ 这里有一个问题要注意一下,图片反转过程中可能会遇到一种如下所示的跳变bug: 这玩意一出来吓我一大跳,显然这种用户体验是很不好的,解决方法: 在.pic, .info{...} ...

  9. celery在项目中的使用

    1 关于celery是一个处理异步耗时任务的框架 由 worker 和broker 和store 3部分组成 worker是来处理消息的工人 broker是来存储请求消息的仓库 store是用来存储结 ...

  10. asp.net实现大视频上传

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...