<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      HBase性能優化方法總結(二):寫表操作

      本文主要是從HBase應用程序設計與開發的角度,總結幾種常用的性能優化方法。有關HBase系統配置級別的優化,可參考:淘寶Ken Wu同學的博客

      下面是本文總結的第二部分內容:寫表操作相關的優化方法。

      2. 寫表操作

      2.1 多HTable并發寫

      創建多個HTable客戶端用于寫操作,提高寫數據的吞吐量,一個例子:

      static final Configuration conf = HBaseConfiguration.create();
      static final String table_log_name = “user_log”;
      wTableLog = new HTable[tableN];
      for (int i = 0; i < tableN; i++) {
      wTableLog[i] = new HTable(conf, table_log_name);
      wTableLog[i].setWriteBufferSize(5 * 1024 * 1024); //5MB
      wTableLog[i].setAutoFlush(false);
      }

      2.2 HTable參數設置

      2.2.1 Auto Flush

      通過調用HTable.setAutoFlush(false)方法可以將HTable寫客戶端的自動flush關閉,這樣可以批量寫入數據到HBase,而不是有一條put就執行一次更新,只有當put填滿客戶端寫緩存時,才實際向HBase服務端發起寫請求。默認情況下auto flush是開啟的。

      2.2.2 Write Buffer

      通過調用HTable.setWriteBufferSize(writeBufferSize)方法可以設置HTable客戶端的寫buffer大小,如果新設置的buffer小于當前寫buffer中的數據時,buffer將會被flush到服務端。其中,writeBufferSize的單位是byte字節數,可以根據實際寫入數據量的多少來設置該值。

      2.2.3 WAL Flag

      在HBae中,客戶端向集群中的RegionServer提交數據時(Put/Delete操作),首先會先寫WAL(Write Ahead Log)日志(即HLog,一個RegionServer上的所有Region共享一個HLog),只有當WAL日志寫成功后,再接著寫MemStore,然后客戶端被通知提交數據成功;如果寫WAL日志失敗,客戶端則被通知提交失敗。這樣做的好處是可以做到RegionServer宕機后的數據恢復。

      因此,對于相對不太重要的數據,可以在Put/Delete操作時,通過調用Put.setWriteToWAL(false)或Delete.setWriteToWAL(false)函數,放棄寫WAL日志,從而提高數據寫入的性能。

      值得注意的是:謹慎選擇關閉WAL日志,因為這樣的話,一旦RegionServer宕機,Put/Delete的數據將會無法根據WAL日志進行恢復。

      2.3 批量寫

      通過調用HTable.put(Put)方法可以將一個指定的row key記錄寫入HBase,同樣HBase提供了另一個方法:通過調用HTable.put(List<Put>)方法可以將指定的row key列表,批量寫入多行記錄,這樣做的好處是批量執行,只需要一次網絡I/O開銷,這對于對數據實時性要求高,網絡傳輸RTT高的情景下可能帶來明顯的性能提升。

      2.4 多線程并發寫

      在客戶端開啟多個HTable寫線程,每個寫線程負責一個HTable對象的flush操作,這樣結合定時flush和寫buffer(writeBufferSize),可以既保證在數據量小的時候,數據可以在較短時間內被flush(如1秒內),同時又保證在數據量大的時候,寫buffer一滿就及時進行flush。下面給個具體的例子:

      for (int i = 0; i < threadN; i++) {
      Thread th = new Thread() {
      public void run() {
      while (true) {
      try {
      sleep(1000); //1 second
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      synchronized (wTableLog[i]) {
      try {
      wTableLog[i].flushCommits();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      }
      }
      };
      th.setDaemon(true);
      th.start();
      }




      posted on 2012-03-08 15:14  大圓那些事  閱讀(21272)  評論(4)    收藏  舉報

      導航

      主站蜘蛛池模板: 嫩草成人AV影院在线观看| 久热这里只有精品12| 国内精品一区二区不卡| 九九热在线观看视频精品| 无码精品人妻一区二区三区中| 九九热在线免费播放视频| 国产午夜福利免费入口| 高清破外女出血AV毛片| 亚洲一区二区av免费| 午夜视频免费试看| 伊人久久大香线蕉AV网| 国产精品久久久久久久久久| 日韩国产精品区一区二区| 国产亚洲AV电影院之毛片| 免费人成视频在线观看网站| 国产成人综合久久亚洲av| 国产太嫩了在线观看| 18禁无遮挡啪啪无码网站| 闽侯县| 国产精品十八禁在线观看| 天堂V亚洲国产V第一次| 深夜国产成人福利在线观看| 欧美成人午夜性视频| 最新精品露脸国产在线| 亚洲天堂成人网在线观看| 极品尤物被啪到呻吟喷水| 九九热视频精选在线播放| 日韩高清亚洲日韩精品一区二区| 日本中文字幕亚洲乱码| 石原莉奈日韩一区二区三区| 亚洲日韩一区二区| 国产熟女高潮一区二区三区| 欧美野外伦姧在线观看| 一本之道高清乱码少妇| 日韩大片看一区二区三区| 婷婷四虎东京热无码群交双飞视频| 99久久国产综合精品色| 亚洲最大日韩精品一区| 国产成人啪精品午夜网站| 18禁极品一区二区三区| 男女18禁啪啪无遮挡激烈网站|