创建Table

 public static void createTable(String tableName){
try {
HBaseAdmin hbaseAdmin = new HBaseAdmin(HBaseConfiguration.create()); if(hbaseAdmin.tableExists(tableName)){
hbaseAdmin.disableTable(tableName);
hbaseAdmin.deleteTable(tableName);
System.out.println("Table "+ tableName +" is already exist");
} // HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
//新版 API
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
hTableDescriptor.addFamily(new HColumnDescriptor("name"));
hTableDescriptor.addFamily(new HColumnDescriptor("course"));
hTableDescriptor.addFamily(new HColumnDescriptor("address"));
hbaseAdmin.createTable(hTableDescriptor); hbaseAdmin.close();
System.out.println("Create table "+ tableName +" finish..."); } catch (IOException e) {
e.printStackTrace();
}
}

插入数据

 public static void insertDate(String tableName){
try {
HTable hTable = new HTable(HBaseConfiguration.create(),tableName);
Put putRow = null;
for(int i=1;i<=1000;i++){
putRow = new Put(("rowkey"+i).getBytes());
putRow.add("name".getBytes(), null, getNameByRandom());
putRow.add("course".getBytes(), "CHINESE".getBytes(), getScoreByRandom());
putRow.add("course".getBytes(), "ENGLISH".getBytes(), getScoreByRandom());
putRow.add("course".getBytes(), "MATH".getBytes(), getScoreByRandom());
putRow.add("address".getBytes(), "CITY".getBytes(), getNameByRandom());
putRow.add("address".getBytes(), "STREET".getBytes(), getNameByRandom());
putRow.add("address".getBytes(), "PROVINCE".getBytes(), getNameByRandom());
hTable.put(putRow);
}
hTable.close();
System.out.println("Insert finish...");
} catch (IOException e) {
e.printStackTrace();
}
} public static byte[] getScoreByRandom() {
return (((int)(Math.random()*60)+40)+"").getBytes();
} public static byte[] getNameByRandom() {
int length = (int)(Math.random()*5)+3;
String nameStr = ""+(char)((int)(Math.random()*26)+'A');
for(int i=1;i<length;i++){
char c = (char)((int)(Math.random()*26)+'a');
nameStr+=c;
}
return nameStr.getBytes();
}

查询数据

 public static void queryByRowKeyFamily(String tableName,String rowKey,String family){
try {
HTable table = new HTable(HBaseConfiguration.create(), tableName);
Get getRow = new Get(Bytes.toBytes(rowKey));
getRow.addFamily(family.getBytes());
Result result = table.get(getRow); for(KeyValue kv:result.list()){
System.out.println(new String(kv.getFamily())+"."+new String(kv.getQualifier())+" "+new String(kv.getValue()));
}
System.out.println(Bytes.toString(result.getRow()));
table.close();
} catch (IOException e) {
e.printStackTrace();
}
}

HBase基本操作-Java实现的更多相关文章

  1. hbase的Java基本操作

    hbase的Java基本操作 建表,建列簇操作 private static Connection connection; private static Admin admin; public sta ...

  2. hbase使用-java操作

      .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courie ...

  3. Hbase配置java客户端

    1.修改windows配置文件 C:\WINDOWS\system32\drivers\etc\hosts 将远程hbase和zookeeper主机的IP地址加进去 54.0.88.53      H ...

  4. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

  5. 5 hbase-shell + hbase的java api

    本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装  .HBase的伪分布模式(1节点)的启动    .HBase ...

  6. HBase的Java Api连接失败的问题及解决方法

    分布式方式部署的HBase,启动正常,Shell操作正常,使用HBase的Java Api操作时总是连接失败,信息如下: This server is in the failed servers li ...

  7. hbase-shell + hbase的java api

    本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装   .HBase的伪分布模式(1节点)的启动    .HBas ...

  8. HBase的java操作,最新API。(查询指定行、列、插入数据等)

    关于HBase环境搭建和HBase的原理架构,请见笔者相关博客. 1.HBase对java有着较优秀的支持,本文将介绍如何使用java操作Hbase. 首先是pom依赖: <dependency ...

  9. Hbase关于Java常用API举例

    1. HBase相关对Admin操作的的API封装在HBaseAdmin中,封装了HBase常用操作的API 使用方法: pom.xml <!-- https://mvnrepository.c ...

随机推荐

  1. PSP DAILY软件功能说明书

    PSP DAILY软件功能说明书 一.开发背景 你在完成了一周的软件工程作业后,需要提交一个PSP图表,里面有4项,如下所示: 1.本周PSP表格,包含每项任务的开始.中断.结束.最终时间,格式如下: ...

  2. OpenCV学习笔记——imread、imwrite以及imshow

    1.imread Loads an image from a file. 从文件中读取图像. C++: Mat imread(const string& filename, int flags ...

  3. Android开发第二阶段(6)

    今天:对sdcard的操作有了进一步的了解和深入,为程序可以自主扫描并添加sdcard的MP3格式文件 明天:最后的修正.

  4. tensorflow之曲线拟合

    视频链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/ 1.定义层 定义 add_layer() from __f ...

  5. 第四次c++作业

    一,GitHub地址 https://github.com/ronghuijun/3Elevators-scheduling 二,命令行和文件读写 百度有时候有点蒙,命令行用的是D:>Eleva ...

  6. Spring学习(五)——Spring注解(一)

    ---恢复内容开始--- 概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射 ...

  7. phpcms 思维导图

    原文地址 : https://www.cnblogs.com/fuyunbiyi/archive/2012/03/12/2391253.html

  8. C#开发移动应用 - 环境搭建

    前言 其实从2013开始就想用Xamarin,奈何 当初收费一座大山压在身上 完全无法见得庐山真面目 后面2015,微软收购Xamarin,没过多久就宣布对个人用户免费..那个兴奋劲就别提了.. 兴奋 ...

  9. 【uoj#48】[UR #3]核聚变反应强度 数论

    题目描述 给出一个长度为 $n$ 的数列 $a$ ,求 $a_1$ 分别与 $a_1...a_n$ 的次大公约数.不存在则输出-1. 输入 第一行一个正整数 $n$ . 第二行 $n$ 个用空格隔开的 ...

  10. 【数据库_Mysql】Mysql知识汇总

    1.将多列字段合并显示用CONCAT(XX,XX,...): 2.查询表中某字段重复的数据: 查重复字段:select 字段 from table group by 字段 having count(* ...