分享

hbase 单进程入库,只有一个HRegionServer在处理的么?

ananan36 发表于 2015-9-18 10:56:50 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 10279
hbase,单进程入库,只有一个HRegionServer在处理的么?代码就是for (int i=0;i<100000000;i++){put.add(...)};

已有(3)人评论

跳转到指定楼层
bob007 发表于 2015-9-18 11:35:55
一般不会的,除非只有一个或则数据倾斜。
回复

使用道具 举报

ananan36 发表于 2015-9-18 16:01:35
bob007 发表于 2015-9-18 11:35
一般不会的,除非只有一个或则数据倾斜。

测试就是这样啊,帮忙看下啊
HTableInterface table = null;
   HTablePool htp = new HTablePool(conf,10);
        table = htp.getTable("test12");
        table.setAutoFlush(false);
        List<Put> list = new ArrayList<Put>();
        for (int i=0;i<1000000000;i++){
         UUID uuid = UUID.randomUUID();
        Put put = new Put(Bytes.toBytes(uuid.toString()));
        put.add(Bytes.toBytes("f1"), Bytes.toBytes("k1"), Bytes.toBytes("mary"));
        //table.put(put);
        
        
        list.add(put);
        //table.put(list);
       // table.flushCommits();
        if(i%100000 == 0)
            {
         
               table.put(list);
               list.clear();   
               table.flushCommits();
               //list.clear();
           }
   }
        table.put(list);
        table.flushCommits();
        htp.close();
回复

使用道具 举报

bob007 发表于 2015-9-21 12:22:16
ananan36 发表于 2015-9-18 16:01
测试就是这样啊,帮忙看下啊
HTableInterface table = null;
   HTablePool htp = new HTablePool(co ...

这应该跟程序没有太大关系,跟集群的情况有关系。比如三个节点跟300个节点,同一个程序,运行肯定不一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条