読者です 読者をやめる 読者になる 読者になる

Hbaseのキャッシュ設定についてのTwitterのログ

Twitterで、@tatsuya6502(Tatsuya Kawano (@tatsuya6502) | Twitter)さんが、色々、教えてくれていたので
揮発性の頭脳としては、忘備録として書いておかなくては。。

補足:http://jp.hmaster.info/で、色々な資料を公開されています。



最初は、キャッシュ設定の例を教えてくれていた。

tatsuya6502. @yutuki_r 今朝の HBase のキャッシュ関連の件ですが、僕のおすすめの基本設定を教えます ( 2010-04-23 01:04:50 )
tatsuya6502. @yutuki_r まず、hbase-env.shで、 HBASE_HEAPSIZEを最低でも2000に設定してください。これにより、-XX:+UseConcMarkSweepGCが有効に働いて、ガベージコレクションの影響を受けにくくなります ( 2010-04-23 01:05:03 )
tatsuya6502. @yutuki_r 次に、hbase-site.xmlでhfile.block.cache.sizeの値を増減させて、リージョンサーバーのLRUブロックキャッシュのサイズを調整します。値は、HBASE_HEAPSIZEに対する割合で指定します(例:0.2なら、20%) ( 2010-04-23 01:05:17 )
tatsuya6502. @yutuki_r テーブルのブロックキャッシュはオンにしてください。そうすれば、一度読み込んだブロックはLRUキャッシュに置かれます(Least Recently Usedですので、アクセスがあまりされないブロックから消されていきます) ( 2010-04-23 01:05:35 )
tatsuya6502. @yutuki_r HBase は書き込みに最適化されていますので、LRUブロックキャッシュを使わないと、読み込みの性能が非常に悪くなってしまいます ( 2010-04-23 01:05:45 )
tatsuya6502. @yutuki_r scanのキャッシュと言っていたのは、Scan#setCaching() のことでした。これは、クライアント側のpre-fetchキャッシュで、リージョンサーバーとの1回の通信で、何個rowを取ってくるかを指定します ( 2010-04-23 01:05:56 )
tatsuya6502. @yutuki_r Scan#setCaching()のディフォルトは1で、スキャンごとに指定できます。100くらいがおすすめです。ディフォルト値は、hbase-site.xmlのhbase.client.scanner.cachingで変更できます ( 2010-04-23 01:06:11 )
tatsuya6502. @yutuki_r 最適な設定はアクセスパターンによって変わるので、この設定を基本に、それぞれのパラメータを調整して最適なものへチューニングしてください ( 2010-04-23 01:18:07 )
tatsuya6502. @yutuki_r HBase は、OSのメモリーが不足してswapが起こるようになると極端に性能が落ちるので、Gangliaでモニターして、swapが起こるようなら、リージョンサーバーと HDFSデータノードのヒープサイズを小さくしてください ( 2010-04-23 01:23:13 )


SSDをDiskに使ったら?と言う、オイラの質問にも、答えてくれました。

tatsuya6502. @Guutara どういたしまして。たしかにSSDは HBase のランダムリードの性能向上につながります。ただ、リージョンサーバーとHDFSデータノードとのネットワーク通信が伴うので、メモリによるキャッシュよりは遅くなるはずです(検証したわけではありません) ( 2010-04-23 07:26:09 )
tatsuya6502. @Guutara ですから、1台あたりのRAMの搭載量を増やすか、台数を増やすか、その両方を行って、トータルのRAMを増加させる方が効果が大きいと思います ( 2010-04-23 07:28:36 )
tatsuya6502. @Guutara マシンやメモリーの値段は年々下がっていますので、スタート時は、高くてもいいハードウェアを手に入れて、その後は、「同じスペックのマシン」をもっと安く買い足すことでキャパシティを上げるのが有効に思えます ( 2010-04-23 07:29:24 )
tatsuya6502@Guutara はい、ブログに転載していただいてかまわないですよ ( 2010-04-23 22:52:36 )
tatsuya6502@Guutara 5月の Hadoop 座談会に行く予定ですので、その時にお会いできるといいですね ( 2010-04-24 00:15:32 )

感謝します。 m(_ _)m