创建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. centos下部署jenkins

    本文摘抄自:https://www.cnblogs.com/edward2013/p/5284503.html  ,请支持原版! 1. 安装JDK 1 yum -y install java 2.安装 ...

  2. 3. IP地址转换函数

    一.字符串表示的IP地址需要被转化为整数(二进制数)方能使用 IPv4地址:点分十进制字符串 IPv6地址:十六进制字符串 有时(如记录日志),我们则要把整数(二进制数)表示的IP地址转化为可读的字符 ...

  3. 王者荣耀交流协会-小组互评Alpha版本

    小组分工如下: 1.探路者---贪吃蛇(测评人:王玉玲) 链接:http://www.cnblogs.com/WYLFZ/p/7805520.html    http://www.cnblogs.co ...

  4. Web站点性能-宏观手段

    1,增加服务器配置,购买性能更强的服务器,cpu.增加内存.增加硬盘(换更大更好的硬盘): 2,修改优化程序: 1)增加缓存: 2)优化代码,优化sql: 3)分离静态资源和动态页面: 3,对服务承担 ...

  5. 常用的比较器:实现方式Compareable和Comparator

    class Dog{ int size; int weight; public Dog(int s, int w){ size = s; weight = w; } } 目的:对于Dog对象作为元素所 ...

  6. 第四章 深入JSP技术

    JSP简介 JSP工作原理 JSP是一种servlet,但先部署后编译. JSP生命周期 运行时只会有一个实例,同servlet. JSP语法 JSP元素和模板数据 模板数据就是JSP中的HTML代码 ...

  7. EF 联合查询

    EF 文章表和标签表联合查询标签id在dis中的文章,还不知道性能如何 var query = tagRepo.Entities.Include("Tags").Where(t = ...

  8. so加载报错:dlopen failed: couldn't map ... Permission denied

    转自:https://blog.csdn.net/u013270444/article/details/60869376 问题描述: 我的应用当中集成了一个安全相关的sdk,而这个sdk中使用的so是 ...

  9. 第187天:js基础---常见的Bom对象

    BOM(Browser Object Mode)浏览器对象模型,是Javascript的重要组成部分.它提供了一系列对象用于与浏览器窗口进行交互,这些对象通常统称为BOM. 一张图了解一下先 1.wi ...

  10. 最大流算法-ISAP

    引入 最大流算法分为两类,一种是增广路算法,一种是预留推进算法.增广路算法包括时间复杂度\(O(nm^2)\)的EK算法,上界为\(O(n^2m)\)的Dinic算法,以及一些其他的算法.EK算法直接 ...