博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase put mysql_HBase Filter使用方法(三)------批量put导入
阅读量:6469 次
发布时间:2019-06-23

本文共 2655 字,大约阅读时间需要 8 分钟。

一、应用线程导入

1、创建put方法

public class mmm{

public static Configuration config=new Configuration();;

static{

config.set("hbase.zookeeper.property.clientPoint","2181");

config.set("hbase.zookeeper.quorum","hbase");

config.set("dfs.socket.timeout", "180000");

}

public static void put(String tablename,String RowKey,String Family,String Qualifier,String Value){

HTable h=null;

try{

h=new HTable(config,tablename);

Put put=new Put(Bytes.toBytes(RowKey));

put.add(Bytes.toBytes(Family), Bytes.toBytes(Qualifier), Bytes.toBytes(Value));

h.put(put);

}catch(Exception e){e.printStackTrace();}finally{

try {

h.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

2、创建线程

public class PutXX {

public static void main(String[] args) {

run1 r1=new run1();

Thread rr1=new Thread(r1);

rr1.start();

run2 r2=new run2();

Thread rr2=new Thread(r2);

rr2.start();

//这里创建两个线程,需要可以继续创建~

}

}

class run1 implements Runnable{

public void run() {

for(int i=0;i<=10000000;i++){

mmm.put("yuan", ""+i+"", "property", "yuan_name", "xx"+i);

System.out.println(i);

}

}

}

class run2 implements Runnable{

public void run() {

for(int i=10000001;i<=20000000;i++){

mmm.put("yuan", ""+i+"", "property", "yuan_name", "xx"+i);

System.out.println(i);

}

}

}

数据导入速度慢。之前put方法每执行一次就要new一个新HTable然后释放资源。。太墨迹了

新put

public static void NBput(String tablename,int RowKey,String Family,String Qualifier,String Value){

HTable h=null;

try {

h=new HTable(config,tablename);

for(int i=RowKey;i<=(RowKey+10000000);i++){

String row=""+i+"";

Put put=new Put(Bytes.toBytes(row));

put.add(Bytes.toBytes(Family), Bytes.toBytes(Qualifier), Bytes.toBytes(Value));

h.put(put);

System.out.println(i);

}

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

h.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

修改以后速度明显提升啊我去!

二、使用List进行put

public class mmm{

public static Configuration config=new Configuration();;

static{

config.set("hbase.zookeeper.property.clientPoint","2181");

config.set("hbase.zookeeper.quorum","hbase");

config.set("dfs.socket.timeout", "180000");

}

/*

* 批量put

*

*/

public static void moreput(String tablename, List puts){

HTable h=null;

try{

h=new HTable(config,tablename);

Put put=new Put(Bytes.toBytes(""));

puts.add(put);

h.put(puts);

}catch(Exception e){

e.printStackTrace();

}finally{

try {

puts.clear();

h.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

然后在主函数中:

List puts=new ArrayList();

for(int i=100000;i<=5000000;i++){

System.out.println(i);

Put put=new Put(Bytes.toBytes(""+i+""));

put.add(Bytes.toBytes("property"), Bytes.toBytes("yuan_name"), Bytes.toBytes("源网"+i));

puts.add(put);

}

System.out.println("写入List完成");

mmm.moreput("yuan", puts);

转载地址:http://vpdko.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
系统架构-设计模式及架构模式基础知识
查看>>
kylin聚合组
查看>>
Format类 格式化和几种字符串翻转方法
查看>>
烦恼的操作系统
查看>>
我的友情链接
查看>>
浅谈产品经理和项目经理
查看>>
ERP成功上线前不可缺少的一步
查看>>
网络回溯分析技术八大应用之责任界定 网络故障排查
查看>>
ElasticSearch单节点模式的搭建
查看>>
我的友情链接
查看>>
常用UI控件之UIImageView
查看>>
restful架构下springmvc controller中delete、put方法传参问题
查看>>
script&gt
查看>>
我的友情链接
查看>>
AFNetworking 3.0.4更新使用
查看>>
计算机入门基础学习
查看>>
open***脚本自动部署
查看>>
【示例代码】1KB JavaScript代码编写的3D蜜蜂
查看>>
2016年3月28日作业
查看>>