HBaseのチューニング
提供: LunaBiblos
Software > DataBase > KeyValueストア > HBaseのチューニング
目次 |
Tuningの基本
下記に紹介するのはTuningの方法であるが、それ以前にTuningすべき箇所の紹介である。
この設定を鵜呑みにするのではなく、用途に合わせて設定値を調整し最適な値を探し出してください。
またHBaseはMemoryがSwapを起こしてしまうと極端に性能が劣化してしまいます。その為、Ganglia等の外部からの監視ツールを用いてSwapの有無を監視してください。Swapが発生している様であれば、RegionServerやHDFSのdatanodeのHeapSizeを小さくし発生しない様に調整してください。
Data圧縮
HBaseが取り扱う実FileをLZOと呼ばれる補法で圧縮する事で効率化、高速化を行います
LZOは圧縮にかかるCPU負荷が非常に軽微である事を特徴とする圧縮方法です。これを使う事DiskのI/OやNetworkのI/O、更にCPU自体の全体的な作業量を減らす事も出来ます。
またHBaseではLZO圧縮を有効にする事で、高負荷時の安定性が大きく改善される為、常時利用する事も考慮に入れても良い
- 圧縮を行う事で、HDFS等に書込/読込するDataの数を減らす事が出来る
- 圧縮を行う事で、HDFS等に書込/読込するDataの量を減らす事が出来る
- 圧縮を行う事で、Disk容量、Network帯域幅を効率的に利用する事が出来る。
準備
Ubuntuであれば下記Commandを実行し、必要なComponentをInstallします
apt-get install liblzo2-dev
圧縮を行う場合はHBase ShellのCreate文で、Column毎に指定します。
create 'myTable', {NAME=>'ColumnA', COMPRESSION=>'lzo'}, {NAME=>'ColumnB'}, {NAME=>'ColumnC', COMPRESSION=>'lzo'}
上記の様なCreate文の場合、ColumnAとColumnCに対して圧縮が行われます。
参考
ScanSizeの調整
設定XMLの中の値を変更する事でScan時に同時取得する数を調整します。
vi ${HBASE_HOME/conf/}hbase-site.xml
上記CommandでFileを開き下記の設定項目を変更します。初期値は1ですが100前後位に上げた方が良いみたいです。
hbase.client.scanner.caching