使用Java Api 对HBase进行简单操作
/** * 功能:测试Hbase基本的增删改查操作 * Created by liuhuichao on 2016/12/5. */ public class HbaseCRUDTest { public static Configuration configuration; static{ configuration= HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","lhc-centos"); } /** * 测试创建student表:测试已通过 * @throws IOException */ @Test public void createTable() throws IOException { HBaseAdmin admin=new HBaseAdmin(configuration); //HBaseAdmin负责管理HBase集群,添加和丢弃表 if(admin.tableExists("studentInfo")){ System.out.println("student表已经存在"); return; } HTableDescriptor descriptor=new HTableDescriptor("studentInfo"); descriptor.addFamily(new HColumnDescriptor("Name"));//创建列族,名字是Name descriptor.addFamily(new HColumnDescriptor("Address"));//创建列族,名字是Address admin.createTable(descriptor); //创建表 System.out.println("student表创建成功!!!"); } /** * 功能:想hbase中插入一行记录 --测试已通过 * @throws IOException */ @Test public void insertHbaseStudentTable() throws IOException { HTable table=new HTable(configuration, Bytes.toBytes("studentInfo")); Put put=new Put(Bytes.toBytes("1")); put.addColumn(Bytes.toBytes("Name"),Bytes.toBytes("firstName"),Bytes.toBytes("liu")); put.addColumn(Bytes.toBytes("Name"),Bytes.toBytes("secondName"),Bytes.toBytes("huichao")); put.addColumn(Bytes.toBytes("Address"),Bytes.toBytes("province"),Bytes.toBytes("hebei")); put.addColumn(Bytes.toBytes("Address"),Bytes.toBytes("city"),Bytes.toBytes("baoding")); put.addColumn(Bytes.toBytes("Address"),Bytes.toBytes("area"),Bytes.toBytes("qingyuan")); table.put(put); } /** * 功能:根据行健获取数据 * @throws IOException */ @Test public void getDataByRowKey() throws IOException { HTable table=new HTable(configuration, Bytes.toBytes("studentInfo")); Get get=new Get(Bytes.toBytes("1")); Result result=table.get(get); for(KeyValue kv :result.list()){ System.out.println("family:"+Bytes.toString(kv.getFamilyArray()));//所属列族名称 System.out.println("qualifier:"+Bytes.toString(kv.getQualifier()));//列名称 System.out.println("value:"+Bytes.toString(kv.getValue()));//存储的值 System.out.println("Timestamp:"+kv.getTimestamp());//获取时间戳 } } /** * 功能:测试全表扫描 * @throws IOException */ @Test public void selectHBaseScan() throws IOException { HTable table=new HTable(configuration, Bytes.toBytes("studentInfo")); /*遍历查询*/ Scan scan=new Scan(); ResultScanner rs=null; try { rs=table.getScanner(scan); for(Result result : rs){ for(KeyValue kv : result.list()){ System.out.println("family:"+Bytes.toString(kv.getFamilyArray()));//所属列族名称 System.out.println("qualifier:"+Bytes.toString(kv.getQualifier()));//列名称 System.out.println("value:"+Bytes.toString(kv.getValue()));//存储的值 System.out.println("Timestamp:"+kv.getTimestamp());//获取时间戳 } } }finally { rs.close(); } } /** * 更新 * @throws Exception */ @Test public void updateHBase() throws Exception{ HTable table=new HTable(configuration,Bytes.toBytes("studentInfo")); Put put=new Put(Bytes.toBytes("1")); //设置行健 put.add(Bytes.toBytes("Address"),Bytes.toBytes("city"),Bytes.toBytes("beijing"));///更新的时候找对族名和列名,再给定新的value值就可以了 table.put(put); } /** * 功能:查询nickname的多个(本示例为2个)版本值. * @throws Exception */ @Test public void selectSomeVersion() throws Exception{ HTable table=new HTable(configuration,Bytes.toBytes("studentInfo")); Get get=new Get(Bytes.toBytes("1")); get.addColumn(Bytes.toBytes("Address"),Bytes.toBytes("city")); // get.setMaxVersions(3); List<KeyValue> results=table.get(get).list(); int total=results.size(); System.out.println("Address列族中city列的各个版本值"); for(int i=0;i<total;i++){ System.out.println(Bytes.toString(results.get(i).getValue())); } } /** * 功能:删除指定的某一行 * @throws Exception */ @Test public void deleteColumn() throws Exception{ HTable table = new HTable(configuration, Bytes.toBytes("studentInfo"));//HTabel负责跟记录相关的操作如增删改查等 Delete deleteAll = new Delete(Bytes.toBytes("1")); table.delete(deleteAll); } /** * 功能:删除表 * @throws Exception */ @Test public void deleteTable() throws Exception{ HBaseAdmin admin=new HBaseAdmin(configuration); //HBaseAdmin负责管理HBase集群,添加和丢弃表 admin.disableTable("student"); admin.deleteTable("student"); } }
使用Java Api 对HBase进行简单操作的更多相关文章
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...
- 通过Java Api与HBase交互(转)
HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ...
- Java使用poi对Execl简单操作_总结
poi是Apache组织给开发者提供一套操作office(Execl,Word,PowerPoint)等Java API,开发者通过Poi API可以快速的操作office办公软件,以上3篇博文只是一 ...
- HBase总结(十二)Java API 与HBase交互实例
HBase提供了Java Api的訪问接口,掌握这个就跟Java应用使用RDBMS时须要JDBC一样重要 import java.io.IOException; import org.apache.h ...
- 通过Java Api与HBase交互
HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ...
- JAVA API访问Hbase org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=32
Java使用API访问Hbase报错: 我的hbase主节点是spark1 java代码访问hbase的时候写的是ip 结果运行程序报错 不能够识别主机名 修改主机名 修改主机hosts文 ...
- 使用JAVA API编程实现简易Habse操作
使用JAVA API编程实现下面内容: 1.创建<王者荣耀>游戏玩家信息表gamer,包含列族personalInfo(个人信息).recordInfo(战绩信息).assetsInfo( ...
- Java Api与HBase交互实例
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ...
- Java中对session的简单操作
1.jsp中操作session <% String name=(String)request.getSession().getAttribute("username"); / ...
随机推荐
- 没有什么问题是sudo rm -rf /* 解决不了的
没有什么问题是sudo rm -rf /* 解决不了的. . . . . . . 如果有的话,赶紧跑.
- [19/04/14-星期日] 网络编程_java.net包(InetAddress类、InetSocketAddress类、URL类)
一.概念 Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能.Java虚拟机负责提供与操作系统的实际连接. InetAddress 作用:封装计算机的IP地址和 ...
- JS页面刷新
setTimeout('location.reload()',1000);//页面刷新 1000为延时的毫秒数 1.setInterval() - 间隔指定的毫秒数不停地执行指定的代码. 2.se ...
- 通讯协议(二)HTTPS协议
摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过 ...
- Datatable报错Uncaught TypeError: Cannot read property 'cell' of undefined
使用Datatables时,报出错误 仔细想想,是因为我在columns里加入了id,并设置visible:false 但是却没在下面的HTML部分多加一个 th 虽然我觉得因为id是隐藏的,不用加上 ...
- Redhat7.2 ----team网卡绑定
我先声明一下,team和bonding是一样的作用,只不过team多了几项功能bonding没有, 做team我们要最少准备两个网卡,我们这里主要显示主备模式. 首先我们先把网卡配置文件删除 nmcl ...
- OpenID Connect Core 1.0(五)使用授权码流验证(下)
3.1.2.6 验证错误响应(Authentication Error Response) 验证错误响应是一个OAuth 2.0授权错误响应消息,是RP发送授权请求的消息,由OP授权终结点的响应返回. ...
- Vcenter虚拟化三部曲----VMWare ESXi 5.5安装及配置
VMWare ESXi 5.5安装大概过程如下:制作虚拟化ESXi系统的USB启动盘,安装ESXi系统到USB,用USB启动ESXi系统.比较难理解,下面图解过程. 下载UNetbootin (下 ...
- C++练习 | 运算符重载练习(字符串相关)
#include <iostream> #include <cmath> #include <cstring> #include <string> #i ...
- Spring Bean d的作用域
在spring中,可以在<bean>元素的scop属性里设置bean的作用域,以决定这个bean是单实例的还是多实例的. 默认情况下,spring只为每个在IOC容器里声明的bean创建唯 ...