1. package com.zy.test;
  2.  
  3. import java.io.IOException;
  4.  
  5. import org.apache.hadoop.conf.Configuration;
  6. import org.apache.hadoop.hbase.HBaseConfiguration;
  7. import org.apache.hadoop.hbase.HColumnDescriptor;
  8. import org.apache.hadoop.hbase.HTableDescriptor;
  9. import org.apache.hadoop.hbase.TableName;
  10. import org.apache.hadoop.hbase.client.Admin;
  11. import org.apache.hadoop.hbase.client.Connection;
  12. import org.apache.hadoop.hbase.client.ConnectionFactory;
  13. import org.apache.hadoop.hbase.client.Delete;
  14. import org.apache.hadoop.hbase.client.Get;
  15. import org.apache.hadoop.hbase.client.Put;
  16. import org.apache.hadoop.hbase.client.Result;
  17. import org.apache.hadoop.hbase.client.ResultScanner;
  18. import org.apache.hadoop.hbase.client.Scan;
  19. import org.apache.hadoop.hbase.client.Table;
  20. import org.apache.hadoop.hbase.util.Bytes;
  21. import org.junit.Test;
  22.  
  23. public class HBaseTest {
  24.  
  25. @Test
  26. public void createTable() throws IOException{
  27. Configuration conf = HBaseConfiguration.create();
  28. conf.set("hbase.zookeeper.quorum", "exercise1:2181,exercise2:2181,exercise3:2181");
  29. //建立连接
  30. Connection conn=ConnectionFactory.createConnection(conf);
  31. //获取表管理类
  32. Admin admin=conn.getAdmin();
  33. //定义表
  34. HTableDescriptor hTableDescriptor=new HTableDescriptor(TableName.valueOf("person"));
  35. //定义列族
  36. HColumnDescriptor hColumnDescriptor=new HColumnDescriptor("info");
  37. //将列族添加到表中
  38. hTableDescriptor.addFamily(hColumnDescriptor);
  39. //执行建表操作
  40. admin.createTable(hTableDescriptor);
  41. admin.close();
  42. conn.close();
  43. }
  44. @Test
  45. public void put() throws IOException{
  46. Configuration conf=HBaseConfiguration.create();
  47. conf.set("hbase.zookeeper.quorum", "exercise1:2181,exercise2:2181,exercise3:2181");
  48. //建立连接
  49. Connection conn=ConnectionFactory.createConnection(conf);
  50. //获取表
  51. Table table=conn.getTable(TableName.valueOf("person"));
  52. //用行键实例化Put
  53. Put put=new Put("rk0001".getBytes());
  54. //指定列族名、列名和值
  55. put.addColumn("info".getBytes(), "name".getBytes(),"zhangsan".getBytes());
  56. //执行put操作
  57. table.put(put);
  58. //关闭连接
  59. table.close();
  60. conn.close();
  61. }
  62. @Test
  63. public void get() throws IOException {
  64. Configuration conf=HBaseConfiguration.create();
  65. conf.set("hbase.zookeeper.quorum","exercise1:2181,exercise2:2181,exercise3:2181");
  66. //建立连接
  67. Connection conn=ConnectionFactory.createConnection(conf);
  68. //获取表
  69. Table table=conn.getTable(TableName.valueOf("person"));
  70. //用行键实例化Get
  71. Get get=new Get("rk0001".getBytes());
  72. //增加列族名和列名条件
  73. get.addColumn("info".getBytes(),"name".getBytes());
  74. //执行,返回结果
  75. Result result=table.get(get);
  76. //取出结果
  77. String valStr=Bytes.toString(result.getValue("info".getBytes(),"name".getBytes()));
  78. System.out.println(valStr);
  79. //关闭连接
  80. table.close();
  81. conn.close();
  82. }
  83. @Test
  84. public void scan() throws IOException{
  85. Configuration conf=HBaseConfiguration.create();
  86. conf.set("hbase.zookeeper.quorum", "exercise1:2181,exercise2:2181,exercise3:2181");
  87. //建立连接
  88. Connection conn=ConnectionFactory.createConnection(conf);
  89. //获取表
  90. Table table=conn.getTable(TableName.valueOf("person"));
  91. //初始化Scan实例
  92. Scan scan=new Scan();
  93. //增加过滤条件
  94. scan.addColumn("info".getBytes(),"name".getBytes());
  95. //返回结果
  96. ResultScanner rss=table.getScanner(scan);
  97. //迭代并取出结果
  98. for(Result rs:rss){
  99. String valStr=Bytes.toString(rs.getValue("info".getBytes(),"name".getBytes()));
  100. System.out.println(valStr);
  101. }
  102. //关闭连接
  103. table.close();
  104. conn.close();
  105. }
  106. @Test
  107. public void delete() throws IOException{
  108. Configuration conf=HBaseConfiguration.create();
  109. conf.set("hbase.zookeeper.quorum", "exercise1:2181,exercise2:2181,exercise3:2181");
  110. //建立连接
  111. Connection conn=ConnectionFactory.createConnection(conf);
  112. //获取表
  113. Table table=conn.getTable(TableName.valueOf("person"));
  114. // 用行键来实例化Delete实例
  115. Delete del = new Delete("rk0001".getBytes());
  116. // 执行删除
  117. table.delete(del);
  118. //关闭连接
  119. table.close();
  120. conn.close();
  121. }
  122. }

Java程序操作HBase的更多相关文章

  1. JAVA程序操作hbase的Maven配置pom.xml文件

    由于工作需要,用到Java连接Hbase读写数据.原来的方式是直接将依赖的jar包全部下载下来,然后工程里面引用. 现想重构下,改为使用Maven管理,遇到了各种坑,各种不好使,特总结下. <d ...

  2. 【Hbase三】Java,python操作Hbase

    Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...

  3. Java程序操作数据库SQLserver详解

    数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...

  4. linux 下通过过 hbase 的Java api 操作hbase

    hbase版本:0.98.5 hadoop版本:1.2.1 使用自带的zk 本文的内容是在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据 ...

  5. HBase 6、用Phoenix Java api操作HBase

    开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...

  6. [原创]HBase学习笔记(3)- Java程序访问HBase

    这里介绍使用java api来访问和操作HBase,例如create.delete.select.update等操作. 1.HBase配置 配置HBase使用的zookeeper集群地址和端口. pr ...

  7. 大数据-09-Intellij idea 开发java程序操作HDFS

    主要摘自 http://dblab.xmu.edu.cn/blog/290-2/ 简介 本指南介绍Hadoop分布式文件系统HDFS,并详细指引读者对HDFS文件系统的操作实践.Hadoop分布式文件 ...

  8. java程序操作Geometry对象

    Geometry 空间地理对象,Oracle中存储Geometry对象的字段类型是 MDSYS.SDO_GEOMETRY,在数据库中构建Geometry对象的方法: v_pointarray MDSY ...

  9. kerberos下JAVA代码操作hbase的方式(客户端方式,应用程序方式)

    (一)如果部署JAVA 代码的主机用户获取了kerberos权限情况下 假设主机名是:client su - client 登录主机后 kinit -kt /keytab的路径/client.keyt ...

随机推荐

  1. day119:MoFang:宠物的状态改动&宠物粮道具的使用&宠物死亡处理

    目录 1.宠物的状态改动 2.宠物粮道具的使用 3.宠物死亡处理 1.宠物的状态改动 1.在setting表中为每个宠物配置生命周期时间 因为宠物有多个,每个宠物会有不同的初始生命的饥饿时间,所以我们 ...

  2. Mac安装Go语言

    正文 安装 安装我们使用 HomeBrew ,其使用方法详见我的上一篇博文 brew install go 配置环境变量 Go1.3及以后版本跳过以下步骤 进入变量文件 cd ~ vim .bash_ ...

  3. docker基础总结

    搜索镜像docker search ubuntu 搜索ubuntu的Docker镜像 搜索结果单个单词ubuntu这样的镜像,被称为基础镜像或根镜像,这些基础镜像由 Docker 公司创建搜索结果ti ...

  4. oracle 11g 安装与卸载

    安装 点击是,这是位数不一致,但可用. 桌面类――这种安装方式一般适用于台式机和笔记本.它包含一个最小数据库和最低的配置需求. 服务器类――这种安装方式适用于服务器,例如,它会向您提供数据中心和用于支 ...

  5. 深入理解static、volatile关键字

    static 意思是静态的,全局的.被修饰的东西在一定范围内是共享的,被类的所有实例共享,这时候需要注意并发读写的问题. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们. ...

  6. linux最大打开文件句柄数

    linux最大打开文件句柄数,即打开文件数最大限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024) liunx中文件句柄有两个限制,一种是用户级的,一种是 ...

  7. python sqlite3增加表字段

    给sqlite3表格增加新字段,要注意大小写,要不然不成功. 一开始这样写,不成功! 后面规范写,按大小写严格规范写! 成功了!现在查看新增加的字段commit: 仔细看,这下全部小写,括表名称.co ...

  8. PW6513高压40V的LDO芯片,SOT89封装

    一般说明 PW6513系列是一款高精度,高输入电压,低静态电流,高速,低具有高纹波抑制的线性稳压器.输入电压高达40V,负载电流为在电压=5V和VIN=7V时高达300mA.该设备采用BCD工艺制造. ...

  9. linux自定义安装位置安装jdk

    注:本文系参考网络内容及本人实践得出 1 下载jdk安装包 下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downl ...

  10. Centos7 虚拟机优化

    配置yum源 rm -f /etc/yum.repos.d/* curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/ ...