国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

HBase性能調整:配置

2018-09-21 14:51 更新

HBase配置

請參閱HBase重要配置一節(jié)的內容。

管理壓縮

對于較大的系統(tǒng),管理link:[compactions and splits]可能是您需要考慮的事情。

hbase.regionserver.handler.count

[hbase.regionserver.handler.count]。

hfile.block.cache.size

請參見[hfile.block.cache.size]。RegionServer進程的內存設置。

Blockcache的預取選項

如果設置了列族或RegionServer屬性,HBASE-9857會在打開BlockCache時添加一個新選項來預取HFile內容。此選項適用于HBase 0.98.3及更高版本。目的是在打開緩存后,使用內存中的表數(shù)據(jù)盡可能快地預熱BlockCache,而不是將預取數(shù)計為緩存未命中。這對于快速讀取非常有用,但如果要預加載的數(shù)據(jù)不適合BlockCache,則不是一個好主意。它可用于調整預取的IO影響與所有數(shù)據(jù)塊在緩存中的時間之間的關系。

要在給定列族上啟用預取,可以使用HBase Shell或使用API??。

使用HBase Shell啟用預取:

hbase> create 'MyTable', { NAME => 'myCF', PREFETCH_BLOCKS_ON_OPEN => 'true' }

使用API??啟用預取

// ...
HTableDescriptor tableDesc = new HTableDescriptor("myTable");
HColumnDescriptor cfDesc = new HColumnDescriptor("myCF");
cfDesc.setPrefetchBlocksOnOpen(true);
tableDesc.addFamily(cfDesc);
// ...

要查看運行中的預取,請在hbase-2.0 +中的org.apache.hadoop.hbase.io.hfile.HFileReaderImpl,或在HBase的早期版本,hbase-1.x中的org.apache.hadoop.hbase.io.hfile.HFileReaderV2中啟用TRACE級別登錄。

hbase.regionserver.global.memstore.size

請參見[hbase.regionserver.global.memstore.size]。通常根據(jù)需要為RegionServer進程調整此內存設置。

hbase.regionserver.global.memstore.size.lower.limit

請參見[hbase.regionserver.global.memstore.size.lower.limit]。通常根據(jù)需要為RegionServer進程調整此內存設置。

hbase.hstore.blockingStoreFiles

請參見[hbase.hstore.blockingStoreFiles]。如果RegionServer日志中存在阻塞,則增加此值可能有所幫助。

hbase.hregion.memstore.block.multiplier

請參見[hbase.hregion.memstore.block.multiplier]。如果有足夠的RAM,增加這個可以幫助。

hbase.regionserver.checksum.verify

讓HBase將校驗和寫入數(shù)據(jù)塊,并保存在讀取時必須進行校驗和查找。

請參見[hbase.regionserver.checksum.verify],[hbase.hstore.bytes.per.checksum][hbase.hstore.checksum.algorithm]

調整callQueue選項

HBASE- 11355引入了幾種可以提高性能的callQueue調優(yōu)機制。

要增加callqueue的數(shù)量,請設置hbase.ipc.server.num.callqueue為大于1的值。要將callqueue拆分為單獨的讀寫隊列,請將hbase.ipc.server.callqueue.read.ratio的值設置為0和1之間。此因素將隊列的權重賦給寫入(如果低于0.5)或讀取(如果高于0.5)。另一種說法是,該因子決定了拆分隊列中有多少百分比用于讀取。以下示例說明了一些可能性。請注意,無論您使用何種設置,始終至少有一個寫入隊列。

  • 默認值為0不拆分隊列。
  • 值0.3使用30%的隊列進行讀取,60%用于寫入。如果hbase.ipc.server.num.callqueue的給定值為10,則3個隊列將用于讀取,7個用于寫入。
  • 值0.5使用相同數(shù)量的讀取隊列和寫入隊列。如果hbase.ipc.server.num.callqueue的給定值為10,則將5個隊列用于讀取,5個用于寫入。
  • 值0.6使用60%的隊列進行讀取,30%用于寫入。如果hbase.ipc.server.num.callqueue的給定值為10,則7個隊列將用于讀取,3個用于寫入。
  • 值1.0使用一個隊列來處理寫請求,所有其他隊列處理讀請求。高于的值1.0具有與值相同的效果1.0。如果hbase.ipc.server.num.callqueue的給定值為10,則9個隊列將用于讀取,1個用于寫入。

您還可以拆分讀取隊列,以便通過設置hbase.ipc.server.callqueue.scan.ratio選項將單獨的隊列用于短讀?。▉碜訥et操作)和長讀取(來自Scan操作)。此選項是介于0和1之間的一個因子,它決定了用于獲取和掃描的讀取隊列的比率。如果值低于0.5,則使用更多隊列用于獲取,如果值高于0.5,則使用更多隊列進行掃描。無論您使用何種設置,至少有一個讀取隊列用于Get操作。

  • 值為0不會拆分讀取隊列。
  • 一個值0.3使用60%的讀取隊列來用于獲取,30%用于掃描。如果hbase.ipc.server.num.callqueue給定的值為20,并且hbase.ipc.server.callqueue.read.ratio的值為0.5,那么10個隊列將用于讀取,在這10個隊列中,7個隊列用于獲取,3個隊列用于掃描。
  • 一個值0.5使用一半的讀取隊列用于獲取,另一半用于掃描。如果hbase.ipc.server.num.callqueue給定的值為20,并且hbase.ipc.server.callqueue.read.ratio的值為0.5,那么10個隊列將用于讀取,在這10個隊列中,5個隊列用于獲取,5個隊列用于掃描。
  • 一個值0.6使用30%的讀取隊列用于獲取,60%用于掃描。如果hbase.ipc.server.num.callqueue給定的值為20,并且hbase.ipc.server.callqueue.read.ratio的值為0.5,那么10個隊列將用于讀取,在這10個隊列中,3個隊列用于獲取,7個隊列用于掃描。
  • 一個值1.0將使用除一個讀取隊列之外的所有隊列進行掃描。如果hbase.ipc.server.num.callqueue給定的值為20,并且hbase.ipc.server.callqueue.read.ratio的值為0.5,那么10個隊列將用于讀取,在這10個隊列中,10個隊列用于獲取,1個隊列用于掃描。

您可以使用新選項hbase.ipc.server.callqueue.handler.factor以編程方式調整隊列數(shù):

  • 值為0,使用所有處理程序之間的單個共享隊列。
  • 值為1,每個處理程序使用單獨的隊列。
  • 0和1之間的值,根據(jù)處理程序的數(shù)量調整隊列數(shù)。例如,值為0.5會在每兩個處理程序之間共享一個隊列。擁有更多隊列(例如,在每個處理程序中有一個隊列的情況下)可以在將任務添加到隊列或從隊列中選擇任務時減少爭用。權衡的是,如果你有一些具有長時間運行任務的隊列,處理程序可能最終等待從該隊列執(zhí)行而不是處理具有等待任務的另一個隊列。

要使這些值在給定的區(qū)域服務器上生效,必須重新啟動區(qū)域服務器。這些參數(shù)僅用于測試目的,應謹慎使用。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號