预分Region 与 不预分Region 的测试:
1 不预分Region:
      23~29秒插入100W数据   并且蛋疼的是每次都写入一个 RegionServer 且  只在一个 Region 相当于人为制造的网络风暴。
2  预分Region(3节点分了3个Region)
     写入 18~19秒 100W 数据。  55555 每秒。(本机网络请求已满。否则应该线性增长)

下面是代码; 
(注释部分为不分 Region 的情况)
  1. package com.rocky.util;
  2. import com.rocky.dao.HBaseFactory;
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.hbase.*;
  5. import org.apache.hadoop.hbase.client.*;
  6. import org.apache.hadoop.hbase.util.Bytes;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.Random;
  11. import java.util.UUID;
  12. /**
  13. * Created by rocky_24 on 2016/2/25.
  14. */
  15. public class putData {
  16. public static void main(String[] args) throws IOException {
  17. // /**
  18. // * 分16
  19. // */
  20. // byte[][] preforkRegions = new byte[10+6][];
  21. // int k=0;
  22. // System.out.println(preforkRegions.length);
  23. // for(char i='0';i<='9';i++){
  24. // preforkRegions[k++]=(""+i).getBytes();
  25. // }
  26. // for(char i='a';i<='f';i++){
  27. // preforkRegions[k++]=(""+i).getBytes();
  28. // }
  29. byte[][] preforkRegions = new byte[3][];
  30. preforkRegions [0] = ("5").getBytes();
  31. preforkRegions [1] = ("10").getBytes();
  32. preforkRegions [2] = ("z").getBytes();
  33. createTable("access_logs","f",preforkRegions);
  34. System.out.println(TimeUtils.getIntradayDateAndTime());
  35. String [] pages = {"/","/a.html","/b.html","/c.html"};
  36. Configuration con = HBaseFactory.getConf();
  37. HTable table = new HTable(con,"access_logs");
  38. // Table table = HBaseFactory.getHBaseConnection().getTable(TableName.valueOf("access_logs"));
  39. table.setWriteBufferSize(1024 * 1024 * 6);
  40. table.setAutoFlushTo(false);
  41. int totalRecords = 10000;
  42. Random rand = new Random();
  43. System.out.println("importing " + totalRecords + " records ....");
  44. List<Put> list = new ArrayList<Put>();
  45. for (int i=0; i < totalRecords * 100; i++) {
  46. String rowkey = UUID.randomUUID().toString();
  47. String randomPage = pages[rand.nextInt(pages.length)];
  48. Put put = new Put(rowkey.getBytes());
  49. put.addColumn(Bytes.toBytes("f"), null, Bytes.toBytes(randomPage));
  50. list.add(put);
  51. }
  52. System.out.println("put数据装载完毕:"+list.size());
  53. System.out.println(TimeUtils.getIntradayDateAndTime());
  54. table.put(list);
  55. table.flushCommits();
  56. table.close();
  57. System.out.println("done");
  58. System.out.println(TimeUtils.getIntradayDateAndTime());
  59. }
  60. /**
  61. * 创建表
  62. * @param tableName
  63. * @param columnFamily
  64. * @param spilts
  65. * @throws IOException
  66. */
  67. public static void createTable(String tableName, String columnFamily, byte[][] spilts) throws IOException {
  68. Connection connection = HBaseFactory.getHBaseConnection();
  69. Admin admin = connection.getAdmin();
  70. if (admin.tableExists(TableName.valueOf(tableName))) {
  71. admin.disableTable(TableName.valueOf(tableName));
  72. admin.deleteTable(TableName.valueOf(tableName));
  73. }
  74. HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf(tableName));
  75. tableDesc.addFamily(new HColumnDescriptor(columnFamily));
  76. if (spilts == null) {
  77. admin.createTable(tableDesc);
  78. } else {
  79. admin.createTable(tableDesc, spilts);
  80. }
  81. admin.close();
  82. }
  83. }

观察 16010端口 查看 Region 分裂情况如下:

   = =! 多分了一个 Region 因为HBase 在分裂创建时候是拿到
asscii 码的 0 到 数字[10]

HBase 1.1.2 优化插入 Region预分配的更多相关文章

  1. 【转载】HBase 数据库检索性能优化策略

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html 高性能 HBase 数据库 本文首先介绍了 HBase 数据库基本 ...

  2. HBase 数据库检索性能优化策略--转

    https://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的 ...

  3. HBase 数据库检索性能优化策略

    HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主要用于非结构化数据存储用途的开源数据库.其设计思路来源于 Google 的非开源数据库"BigTable" ...

  4. hbase读的性能优化

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...

  5. mysql如何优化插入记录速度

    插入记录时,影响插入速度的主要是索引.唯一性校验.一次插入记录条数等.根据这些情况,可以分别进行优化,本节将介绍优化插入记录速度的几种方法. 一.对于MyISAM引擎表常见的优化方法如下:     1 ...

  6. hbase优化之region合并和压缩

    HBASE操作:(一般先合并region然后再压缩) 一 .Region合并: merge_region   'regionname1','regionname2' ,'true'  --true代表 ...

  7. HBase(八): 表结构设计优化

    在 HBase(六): HBase体系结构剖析(上) 介绍过,Hbase创建表时,只需指定表名和至少一个列族,基于HBase表结构的设计优化主要是基于列族级别的属性配置,如下图: 目录: BLOOMF ...

  8. HBase 架构与工作原理5 - Region 的部分特性

    本文系转载,如有侵权,请联系我:likui0913@gmail.com Region Region 是表格可用性和分布的基本元素,由列族(Column Family)构成的 Store 组成.对象的层 ...

  9. Java客户端访问HBase集群解决方案(优化)

    测试环境:Idea+Windows10 准备工作: <1>.打开本地 C:\Windows\System32\drivers\etc(系统默认)下名为hosts的系统文件,如果提示当前用户 ...

随机推荐

  1. Oracle查询当前用户下的所有表及sqlplus 设置 列宽

    如果oracle服务器中装有多个数据库实例,则在用户名处输入:用户名/密码@数据库名称.如果数据库服务器不在本机上,还需要加上数据库服务器的地址:用户名/密码@IP地址/数据库名称. [oracle@ ...

  2. centos下nginx配置

    转自  http://www.linuxidc.com/Linux/2016-09/134907.htm 安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Wi ...

  3. Thread Control Block

    Thread Control Block The following is the declaration of the Thread Control Block. struct tcb { u32_ ...

  4. 优动漫PAINT-简单的树、叶教学

    如题,简单.好用:其实说的还是一个观察的事.看你是否足够细心,对于树叶的生长.枝桠和树干的关系是否了解咯. 对于这样的树枝丫和叶子完全可以使用优动漫PAINT完成,简单又快捷,软件下载:www.don ...

  5. 手把手教你如何新建scrapy爬虫框架的第一个项目(上)

    前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...

  6. 洛谷P2607 [ZJOI2008]骑士 基环树动归

    Code: #include<algorithm> #include<cstdio> #include<algorithm> #include<cstring ...

  7. 简洁的MVC思想框架——Nancy(Session的使用)

    前文提到关于Nancy中GET和POST以及外部引用图片,css和JS的文件等操作.今天所讲的是Nancy关于Session相关操作. Session作为web开发中极其重要的一部分,而Nancy中S ...

  8. iOS面试总结(待完善)

    闲的没事总结一下面试资料,先列个大纲,然后慢慢填充,一步步完善,反正也不急. 1.基本属性 2.KVC与KVO 3.代理与block 4.多线程:NSThread,GCD,NSOperation 5. ...

  9. BZOJ 2555 SubString(LCT+后缀树)

    喜闻乐见的LCT+SAM 此题要求动态插入,直接上后缀树.然后询问其实就是求一个节点的子树后缀结束节点的个数. 因为建立后缀树需要插入和删除,就直接上LCT.每次加入一个点,把它到根的路径加一 (现在 ...

  10. [Vijos P2000]A x B Problem

    题目大意:叫你求A × B. 解题思路:高精度.你可千万别小看这道题,这是2017年7月27日的信息. 不过也不要怕,根据twd2的题解里写的,用普通的高精度加上一些小小的修改是可以过的. 那么直接上 ...