创建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. RIGHT-BICEP测试第二次

    1.Right-结果是否正确? 正确 2.B-是否所有的边界条件都是正确的? 正确 3.P-是否满足性能要求? 部分满足 4.是否满足有无括号? 无 5.数字个数是否不超过十? 只是双目运算 6.能否 ...

  2. 软件工程团队项目第一个Sprint评论

    (1)跑男:话说我没怎么听懂这个游戏是怎么玩的,可能是由于这是第一组,所以我没有反应过来把,界面设计的还可以,但是像设置,选关,帮助真心没看懂.有一种感觉就是,这个游戏是由一堆的漂亮的图片拼起来的,还 ...

  3. [codecademy]css

    Great work! You've learned the basics of CSS structure and syntax. We'll continue to build on these ...

  4. lintcode-451-两两交换链表中的节点

    451-两两交换链表中的节点 给一个链表,两两交换其中的节点,然后返回交换后的链表. 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3. ...

  5. Docker 技术 介绍

    https://github.com/docker/docker 实现用户空间隔离的技术:名称空间(NameSpace),CGroup(控制组) 什么是NameSpace::简单的理解就是,每一个虚拟 ...

  6. 给新建的kvm虚拟机创建网络接口

    (一)首先必须创建网卡连接桥接口的启动脚本和停止脚本,其中脚本中的 $1:表示为虚拟机的网卡的右边接口,这两个脚本就是讲虚拟机的网卡的右边接口接在网桥上,实现桥接模型     # 1:/etc/qem ...

  7. (九) 使用Jmeter 做分布式压测 ;

    在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...

  8. 因为NLS_LANG 造成 Oracle数据库丢失 中文字符集兼容问题的处理.

    接着上一封blog. 因为sqlplus的 乱码问题 我修改了 注册表里面 NLS_LANG 的 value值.主要改动为: NLS_LANG source: SIMPLIFIED CHINESE_C ...

  9. delphi完美经典--第十八章

    第18章数据感知组件 一.TDBText组件 用来以只读.一次一条记录的方式,显示DataSet中的某一字段值.因同样继承自TCustomLabel,TDBText组件除了数据感知功能外,与标准组件T ...

  10. 【插件】LinqToExcel常用对象

    1.ExcelQueryFactory对象(1)获取工作表名集合IEnumerable<string> GetWorksheetNames() //获取工作薄中的工作表名foreach ( ...