1. import org.apache.hadoop.conf.Configuration;
  2. import org.apache.hadoop.hbase.HBaseConfiguration;
  3. import org.apache.hadoop.hbase.TableName;
  4. import org.apache.hadoop.hbase.client.*;
  5. import org.apache.hadoop.hbase.util.Bytes;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. /**
  11. * Created by similarface on 16/8/22.
  12. * 校验指定数据是否存在
  13. *
  14. */
  15. public class CheckExistSpecificData {
  16. public static void main(String args[]) throws IOException{
  17. Configuration configuration = HBaseConfiguration.create();
  18. Connection connection = ConnectionFactory.createConnection(configuration);
  19. //建立表的连接
  20. Table table = connection.getTable(TableName.valueOf("testtable"));
  21. //
  22. List<Put> puts = new ArrayList<Put>();
  23. //
  24. Put put1 = new Put(Bytes.toBytes("10086"));
  25. put1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"), Bytes.toBytes("中国移动"));
  26. puts.add(put1);
  27.  
  28. Put put2 = new Put(Bytes.toBytes("10010"));
  29. put2.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"), Bytes.toBytes("中国联通"));
  30. puts.add(put2);
  31.  
  32. Put put3 = new Put(Bytes.toBytes("10010"));
  33. put3.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual2"), Bytes.toBytes("中国联通客服"));
  34. puts.add(put3);
  35. //插入两行数据
  36. table.put(puts);
  37.  
  38. Get get1 = new Get(Bytes.toBytes("10010"));
  39. get1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
  40. //Only check for existence of data, but do not return any of it.
  41. //校验数据是否存在但是不返回任何数据 ==> Get 1 Exists: true
  42. get1.setCheckExistenceOnly(true);
  43. //检查存在的第一个数据。==>Get 1 Size: 0
  44. Result result1 = table.get(get1);
  45. //这个地方val并没有值 ==>Get 1 Value: null
  46. byte[] val = result1.getValue(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
  47. System.out.println("Get 1 Exists: " + result1.getExists());
  48. System.out.println("Get 1 Size: " + result1.size());
  49. System.out.println("Get 1 Value: " + Bytes.toString(val));
  50. //获取行键
  51. Get get2 = new Get(Bytes.toBytes("10010"));
  52. //获取列族
  53. get2.addFamily(Bytes.toBytes("colfam1"));
  54. //设置校验是否存在 ==>Get 2 Exists: true
  55. get2.setCheckExistenceOnly(true);
  56. //获取数据集 ==>Get 2 Size: 0
  57. Result result2 = table.get(get2);
  58.  
  59. System.out.println("Get 2 Exists: " + result2.getExists());
  60. System.out.println("Get 2 Size: " + result2.size());
  61.  
  62. //获取行键
  63. Get get3 = new Get(Bytes.toBytes("10010"));
  64. //获取列族 但是错误的列限定符
  65. get3.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual9999"));
  66. //校验是否存在 ==>Get 3 Exists: false
  67. get3.setCheckExistenceOnly(true);
  68. //Get 3 Size: 0
  69. Result result3 = table.get(get3);
  70.  
  71. System.out.println("Get 3 Exists: " + result3.getExists());
  72. System.out.println("Get 3 Size: " + result3.size());
  73. //获取行键100010
  74. Get get4 = new Get(Bytes.toBytes("10010"));
  75. //获取正确的列族 错误的列限定符
  76. get4.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual9999"));
  77. //获取正确的列族 正确的列限定符 ==> Get 4 Exists: true
  78. get4.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
  79. get4.setCheckExistenceOnly(true);
  80. //Get 4 Size: 0
  81. Result result4 = table.get(get4);
  82. System.out.println("Get 4 Exists: " + result4.getExists());
  83. System.out.println("Get 4 Size: " + result4.size());
  84. }
  85. }
  86.  
  87. /**
  88. result:
  89. Get 1 Exists: true
  90. Get 1 Size: 0
  91. Get 1 Value: null
  92. Get 2 Exists: true
  93. Get 2 Size: 0
  94. Get 3 Exists: false
  95. Get 3 Size: 0
  96. Get 4 Exists: true
  97. Get 4 Size: 0
  98. *
  99. */

Hbase之校验指定数据是否存在的更多相关文章

  1. Hbase如何批量删除指定数据

    有时我们需要批量删除一些hbase中符合某些条件的数据,本文提供一种简单的shell命令的方式批量删除hbase里的数据.思路就是,建立hive与hbase的关联表,通过hive sql查询出符合条件 ...

  2. HBase存储剖析与数据迁移

    1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...

  3. HBase BulkLoad批量写入数据实战

    1.概述 在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据.使用Sqoop工具批量导数到HBase集群.使用MapReduce批量导入等.这些方式, ...

  4. Sqoop与HDFS、Hive、Hbase等系统的数据同步操作

    Sqoop与HDFS结合 下面我们结合 HDFS,介绍 Sqoop 从关系型数据库的导入和导出. Sqoop import 它的功能是将数据从关系型数据库导入 HDFS 中,其流程图如下所示. 我们来 ...

  5. HBase(六)HBase整合Hive,数据的备份与MR操作HBase

    一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...

  6. hadoop生态系统学习之路(八)hbase与hive的数据同步以及hive与impala的数据同步

    在之前的博文中提到,hive的表数据是能够同步到impala中去的. 一般impala是提供实时查询操作的,像比較耗时的入库操作我们能够使用hive.然后再将数据同步到impala中.另外,我们也能够 ...

  7. 大数据学习笔记——HBase使用bulkload导入数据

    HBase使用bulkload批量导入数据 HBase可使用put命令向一张已经建好了的表中插入数据,然而,当遇到数据量非常大的情况,一条一条的进行插入效率将会大大降低,因此本篇博客将会整理提高批量导 ...

  8. Hbase 整合 Hadoop 的数据迁移

    上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...

  9. sqlserver 自增ID插入指定数据

    set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...

随机推荐

  1. Poj(2679),SPFA,二级比较

    题目链接:http://poj.org/problem?id=2679 嗯,思路清晰,先DFS看是不是通路,接着就是SPFA找最短路(路是费用,费用相同就比较路的长度). 超哥的代码还有一点问题,初始 ...

  2. python递归小疑惑

    代码如下: def crawlAndGet(keyword, n): if n>0: jsondata = os.system('scrapy crawl beijing -a store_di ...

  3. log4j: 不同的类使用不同的日志

    有时候会需要某些功能中使用独立的日志文件,以下为代码示例. public final static String LOGGER_NAME = "MyFunction"; priva ...

  4. mysqli报错(HY000/2002)

    Warning: mysqli::mysqli(): (HY000/2002): 没有那个文件或目录 解决:把localhost 换成127.0.0.1就好了.

  5. 2016年12月4日 星期日 --出埃及记 Exodus 20:25

    2016年12月4日 星期日 --出埃及记 Exodus 20:25 If you make an altar of stones for me, do not build it with dress ...

  6. Android Handler Message总结

    http://blog.csdn.net/caesardadi/article/details/8473777 当应用程序启动时,会开启一个主线程(也就是UI线程),由她来管理UI,监听用户点击,来响 ...

  7. Python串口编程

    python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...

  8. SQL十进制和十六进制相互转换

    CREATE FUNCTION ufn_ConvertInt2Hex ( @Num BIGINT ) ) AS BEGIN /************************************* ...

  9. C# Ini配置文件

    public class INIUserAccound { static IniFile Ini = new IniFile(AppDomain.CurrentDomain.BaseDirectory ...

  10. awk 以HWI开头,并且:相邻两行的第一个字段完全相同;

    ## 思路:以HWI开头,并且:相邻两行的第一个字段完全相同:awk 'BEGIN{ last_col_1="xxxxxx"; last_row="bbbbbbbbbbb ...