Amazon XLarge インスタンス (16Gb RAM、4 コア CPU) にデプロイされた 4 ノード HBase v0.90.4-cdh3u3 クラスターがあり、8Gb ヒープ -Xmx が HRegion サーバーに割り当てられ、2Gb がデータノードに割り当てられています。HMaster\ZK\Namenode は別の XLarge インスタンスにあります。ターゲット データセットは 1 億レコードです (各レコードは 10 フィールド x 100 バイトです)。並列 100 スレッドから同時に実行されるベンチマーク。
YCSB チームが達成し、 YCSB 論文で示したものと比較して、私が得た読み取りレイテンシーと混同しています。彼らは、15 ミリ秒のレイテンシーで最大 7000 ops/秒のスループットを達成しました (10 ページ、読み取りレイテンシー チャート)。読み取り 90%、書き込み 10% のワークロードで 2000 ops/秒を超えるスループットを達成できません。自動コミットが無効になっている場合、書き込みは非常に高速ですが (応答は数ミリ秒以内)、読み取りレイテンシは平均で 70 ミリ秒未満にはなりません。
これらは、私が使用したいくつかの HBase 設定です。
- hbase.regionserver.handler.count=50
- hfile.block.cache.size=0.4
- hbase.hregion.max.filesize=1073741824
- hbase.regionserver.codecs=lzo
- hbase.hregion.memstore.mslab.enabled=true
- hfile.min.blocksize.size=16384
- hbase.hregion.memstore.block.multiplier=4
- hbase.regionserver.global.memstore.upperLimit=0.35
- hbase.zookeeper.property.maxClientCnxns=100
HBase で読み取りを高速化するには、どの設定を参照して\調整することをお勧めしますか?