/**
* Created by similarface on 16/8/16.
*/ import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil; import java.util.List;
import java.util.ArrayList; /**
* 批量插入的时候 如果其中一行有问题 该行实效其余的会入库
*/
public class PutDataWithAtomic {
public static void main(String[] args) throws IOException {
//获取陪着参数
Configuration config = HBaseConfiguration.create();
//建立连接
Connection connection = ConnectionFactory.createConnection(config); //连接表 获取表对象
Table table = connection.getTable(TableName.valueOf("testtable"));
Put put1 = new Put(Bytes.toBytes("10000"));
put1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("company"), Bytes.toBytes("dianxin"));
boolean res1 = table.checkAndPut(Bytes.toBytes("10000"), Bytes.toBytes("colfam1"), Bytes.toBytes("company"), null, put1);
System.out.println("Put 1a applied: " + res1); boolean res2 = table.checkAndPut(Bytes.toBytes("10000"), Bytes.toBytes("colfam1"), Bytes.toBytes("company"), null, put1);
System.out.println("Put 1b applied: " + res2); Put put2 = new Put(Bytes.toBytes("10000"));
put2.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("company"), Bytes.toBytes("dx"));
boolean res3 = table.checkAndPut(Bytes.toBytes("10000"), Bytes.toBytes("colfam1"), Bytes.toBytes("dianxin"), Bytes.toBytes("val1"), put2);
System.out.println("Put 2 applied: " + res3); Put put3 = new Put(Bytes.toBytes("10086"));
put3.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("company"), Bytes.toBytes("yidong"));
boolean res4 = table.checkAndPut(Bytes.toBytes("10000"), Bytes.toBytes("colfam1"), Bytes.toBytes("company"), Bytes.toBytes("val1"), put3);
System.out.println("Put 3 applied: " + res4);
connection.close(); }
}

  

Hbase之原子性插入的更多相关文章

  1. Hive 实现HBase 数据批量插入

    HBase 数据的插入可以使用Java API 来写Java 程序逐条倒入,但是不是很方便.利用Hive自带的一个Jar包,可以建立Hive和HBase的映射关系 利用Hive 的insert可以将批 ...

  2. Hbase之原子性更新数据

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; impo ...

  3. 7 Hbase put方式插入数据

    package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...

  4. 大数据组件原理总结-Hadoop、Hbase、Kafka、Zookeeper、Spark

    Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datano ...

  5. HBase 高性能加入数据 - 按批多“粮仓”式解决办法

    摘要:如何从HBase中的海量数据中,以很快的速度的获取大批量数据,这一议题已经在<HBase 高性能获取数据>(http://www.cnblogs.com/wgp13x/p/42451 ...

  6. hbase读写流程

    一. Hbase读流程 META表记录着表的原信息,根据rowkey查询META表,获取所在region信息 客户端去相应的regionServer查询数据,先查询memStore(memstore是 ...

  7. Hive集成HBase详解

    摘要 Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询   应用场景 1. 将ETL操作的数据存入HBase 2. HB ...

  8. Centos中hive/hbase/hadoop/mysql实际操作及问题总结

    目录 Hive中文乱码问题 hive和hbase的版本不一致 Ambari hive插入Hbase出错 Hive0.12和Hbase0.96不兼容,重新编译hive0.12.0 hiveserver不 ...

  9. Hive与Hbase整合

    Hive与Hbase整合 1.文档 Hive HBase Integration 2.拷贝jar文件 2.1.把Hbase的lib目录下面的jar文件全部拷贝到Hive的lib目录下面 cd /hom ...

随机推荐

  1. memcached完全剖析系列——一、memcached基础

    转自:http://blog.charlee.li/memcached-001/

  2. int转多进制

    char buf[4]; int len=100; _itoa(len,buf_len,16);//16代表十六进制,可用其他进制

  3. duilib\utils\utils.h(251) : error C2504: “VARIANT”: 未定义基类

    转载:http://blog.csdn.net/SP_daiyq/article/details/44542939?locationNum=3 创建win32应用程序的工程文件,删除不需要的代码,只留 ...

  4. 函数式编程之block

    语法: 注意: 1,在代码块中可以使用和改变全局变量 2,而局部变量可以使用,但是不能改变. 怎么在代码块中改变局部变量呢?在局部变量前面加上关键字:__block 参考: Objective-C语法 ...

  5. Cheatsheet: 2014 04.01 ~ 04.30

    Java 115 Java Interview Questions and Answers – The ULTIMATE List 3 Good Reasons to Avoid Arrays in ...

  6. Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

    文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码.文件 ...

  7. Django 过滤器 实例

    实例1 safe让Html标签以及一些特殊符号(如<)生效,下面以例子说明: # value = '<b>CPT</b>' # 那么输出的时候,CPT就是加粗的,如果不加 ...

  8. [转]Jenkins CommonCollections 完美利用(演示)工具

    博主URL:http://tools.changesec.com/Jenkins-CommonCollections-Exploit/ 提交漏洞总是要证明漏洞危害,老外写的java代码又有bug,所以 ...

  9. 关于Docker在测试方面的应用

    Docker 火了很长一段时间了,前段时间简单的学习和试玩了一下子,发现他对测试很有价值,觉得有必要再次深入研究. 这里标记一些较好的学习网址,用作参考: InfoQ上面有系列的文章: 深入浅出Doc ...

  10. 再学C++之C++中的全部关键字

    /*______C++全部关键字___________*/ asm do if return try auto double inline short typedef bool dynamic_cas ...