1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢(xún)
      選擇下列產(chǎn)品馬上在線(xiàn)溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      HBase如何調(diào)優(yōu)

      小編給大家分享一下HBase如何調(diào)優(yōu),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

      成都創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、莫力達(dá)網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、莫力達(dá)網(wǎng)絡(luò)營(yíng)銷(xiāo)、莫力達(dá)企業(yè)策劃、莫力達(dá)品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供莫力達(dá)建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):028-86922220,官方網(wǎng)址:www.cdcxhl.com

      1. 表的設(shè)計(jì)

      1.1 提前創(chuàng)建多個(gè)Region
      默認(rèn)情況下,在創(chuàng)建HBase表的時(shí)候會(huì)自動(dòng)創(chuàng)建一個(gè)Region分區(qū),當(dāng)導(dǎo)入數(shù)據(jù)的時(shí)候,所有的HBase客戶(hù)端都向這一個(gè)Region寫(xiě)數(shù)據(jù),直到這個(gè)Region足夠大了才進(jìn)行切分。一種可以加快批量寫(xiě)入速度的方法是通過(guò)預(yù)先創(chuàng)建一些空的Regions,這樣當(dāng)數(shù)據(jù)寫(xiě)入HBase時(shí),會(huì)按照Region分區(qū)情況,在集群內(nèi)做數(shù)據(jù)的負(fù)載均衡


      1.2 Row Key設(shè)計(jì)
      HBase中row key用來(lái)檢索表中的記錄,支持以下三種方式:
      (1) 通過(guò)單個(gè)RowKey訪(fǎng)問(wèn):即按照某個(gè)RowKey鍵值進(jìn)行Get操作;
      (2) 通過(guò)RowKey的Range進(jìn)行Scan:即通過(guò)設(shè)置Start RowKey和End RowKey,在這個(gè)范圍內(nèi)進(jìn)行掃描;
      (3) 全表掃描:即直接掃描整張表中所有行記錄。
      在HBase中,RowKey可以是任意字符串,最大長(zhǎng)度64KB,實(shí)際應(yīng)用中一般為10~100bytes,存為byte[]字節(jié)數(shù)組,一般設(shè)計(jì)成定長(zhǎng)的。
      RowKey是按照字典序存儲(chǔ),因此,設(shè)計(jì)RowKey時(shí),要充分利用這個(gè)排序特點(diǎn),將經(jīng)常一起讀取的數(shù)據(jù)存儲(chǔ)到一塊,將最近可能會(huì)被訪(fǎng)問(wèn)的數(shù)據(jù)放在一塊。
      舉個(gè)例子:如果最近寫(xiě)入HBase表中的數(shù)據(jù)是最可能被訪(fǎng)問(wèn)的,可以考慮將時(shí)間戳作為RowKey的一部分,由于是字典序排序,所以可以使用Long.MAX_VALUE – timestamp作為RowKey,這樣能保證新寫(xiě)入的數(shù)據(jù)在讀取時(shí)可以被快速命中。


      1.3 Column Family設(shè)計(jì)
      不要在一張表里定義太多的column family。目前Hbase并不能很好的處理超過(guò)2~3個(gè)Column family的表。因?yàn)槟硞€(gè)Column Family在Flush的時(shí)候,它鄰近的Column Family也會(huì)因關(guān)聯(lián)效應(yīng)被觸發(fā)Flush,最終導(dǎo)致系統(tǒng)產(chǎn)生更多的I/O。

       
      1.4 In Memory設(shè)置(可選)
      創(chuàng)建表的時(shí)候,可以通過(guò)HColumnDescriptor.setInMemory(true)將表放到RegionServer的緩存中,保證在讀取的時(shí)候被cache命中。

        
      1.5 版本限制
      創(chuàng)建表的時(shí)候,可以通過(guò)HColumnDescriptor.setMaxVersions(int maxVersions)設(shè)置表中數(shù)據(jù)的最大版本,對(duì)于一些不是特別重要的數(shù)據(jù),可以設(shè)置setMaxVersions(1)。

        
      1.6 數(shù)據(jù)生命周期限制
      創(chuàng)建表的時(shí)候,可以通過(guò)HColumnDescriptor.setTimeToLive(int timeToLive)設(shè)置表中數(shù)據(jù)的存儲(chǔ)生命期,過(guò)期數(shù)據(jù)將自動(dòng)被刪除,例如如果只需要存儲(chǔ)最近兩天的數(shù)據(jù),那么可以設(shè)置setTimeToLive(2 * 24 * 60 * 60)。

      1.7 Compact 和Split(可選)

      實(shí)際應(yīng)用中,如果有必要可以手動(dòng)觸發(fā)Compact和split。

      1.8 采用壓縮(可選)

      壓縮需要根據(jù)實(shí)際業(yè)務(wù)和機(jī)器性能來(lái)衡量是否要采用犧牲CPU來(lái)?yè)Q取存儲(chǔ)上的節(jié)約,并且能節(jié)省I/O和網(wǎng)絡(luò)開(kāi)銷(xiāo),可以使用Lzo或Snappy壓縮的方式,大致可以壓縮4~5倍。

      2. 讀取優(yōu)化

      2.1 掃描緩存

      在進(jìn)行掃描時(shí)可以設(shè)置一次讀取多條,緩存數(shù)據(jù),減少I(mǎi)/O開(kāi)銷(xiāo)。代碼實(shí)現(xiàn):

      hTable.setScannerCaching(50); // 參數(shù)50表示一次性?huà)呙?0條

      2.2 掃描指定列

      Scan時(shí)指定需要的Column Family,可以減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,否則默認(rèn)scan操作會(huì)返回整行所有Column Family的數(shù)據(jù)。

        

      2.3 釋放資源

      通過(guò)scan取完數(shù)據(jù)后,記得要關(guān)閉ResultScanner,否則RegionServer可能會(huì)出現(xiàn)問(wèn)題(對(duì)應(yīng)的Server資源無(wú)法釋放)。

        

      3. 寫(xiě)入優(yōu)化 

      3.1 寫(xiě)入緩存

      寫(xiě)入HBase表的時(shí)候最好不要一條一條的寫(xiě),采用批量的方式,在代碼里設(shè)置:

      hTable.setAutoFlush(false, false); // 不讓hbase自動(dòng)刷新數(shù)據(jù)到數(shù)據(jù)庫(kù)
      hTable.setWriteBufferSize(1024 * 1024 * 10);// 緩存大小10M

      當(dāng)緩存的數(shù)據(jù)達(dá)到10M的時(shí)候會(huì)觸發(fā)flush操作,另外當(dāng)hTable.flushCommits();或hTable.close();時(shí)也會(huì)flush數(shù)據(jù)到數(shù)據(jù)庫(kù)中。而且Hbase的API中支持?jǐn)?shù)據(jù)已list的方式插入。

       

      4. 參數(shù)優(yōu)化

      4.1 連接時(shí)間

      參數(shù):zookeeper.session.timeout
      RegionServer與Zookeeper間的連接超時(shí)時(shí)間,默認(rèn)值:3分鐘(180000ms),我們配置:300000ms(5min)。

      4.2 線(xiàn)程數(shù)控制

      參數(shù):hbase.regionserver.handler.count
      RegionServer的請(qǐng)求處理IO線(xiàn)程數(shù),默認(rèn)值:10,我們配置:200。
       

      4.3 split閾值

      參數(shù):hbase.hregion.max.filesize
      單個(gè)region觸發(fā)split的大小閾值,默認(rèn)值:256M,我們配置:4G。
       

      4.4 開(kāi)啟mslab方案

      參數(shù):hbase.hregion.memstore.mslab.enabled
      減少因內(nèi)存碎片導(dǎo)致的Full GC,提高整體性能,默認(rèn)值:true。
       

      4.5 掃描緩存

      參數(shù):hbase.client.scanner.caching
      scanner調(diào)用next方法一次獲取的數(shù)據(jù)條數(shù),默認(rèn)值:1。
       

      4.6 MemStore大小控制

      參數(shù):hbase.regionserver.global.memstore.upperLimit/lowerLimit
      hbase.regionserver.global.memstore.upperLimit :防止memstore來(lái)不及flush成storefile,堆積對(duì)內(nèi)存占用過(guò)大,當(dāng)某region的所有memstore占用大于40%,hbase會(huì)強(qiáng)制block所有的更新(請(qǐng)求)并flush這些memstore釋放內(nèi)存。
      hbase.regionserver.global.memstore.lowerLimit 默認(rèn)值就可以,不用調(diào)。

      以上是“HBase如何調(diào)優(yōu)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      新聞標(biāo)題:HBase如何調(diào)優(yōu)
      網(wǎng)頁(yè)路徑:http://www.ef60e0e.cn/article/pdessp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        喀喇| 岢岚县| 揭阳市| 丰顺县| 汪清县| 邵阳县| 正定县| 临海市| 望江县| 湾仔区| 临泽县| 新昌县| 田林县| 余江县| 万安县| 政和县| 开封市| 北碚区| 晋江市| 淮阳县| 木兰县| 宝应县| 屯昌县| 曲阜市| 营山县| 镇远县| 双鸭山市| 大渡口区| 榆林市| 克东县| 南和县| 石台县| 青海省| 石门县| 罗田县| 茌平县| 平度市| 弋阳县| 门头沟区| 和田市| 万山特区|