S-JIS[2010-02-20/2010-07-25] 変更履歴

hbase-site.xml

HBaseの定義ファイルのメモ。

HBASE_HOME/confの下にhbase-default.xmlとhbase-site.xmlがある。
デフォルトではhbase-default.xmlには色々書かれているが、hbase-site.xmlの方は空っぽ。
Javaプログラムからは使用する定義ファイルを指定できる。
HBase Shellのデフォルト状態はhbase-default.xmlとhbase-site.xmlの設定を使っている模様。

完全分散環境になるとマスターとなるマシンから持ってきたhbase-site.xmlを使うことになるらしい。
とりあえず単独環境や擬似分散環境では関係なし。


主な設定変更

hbase-site.xmlの設定を変更する(hbase-default.xmlから必要なプロパティーをコピーして変更する)。[/2010-07-25]
(hbase-default.xmlを直接いじるのは非推奨)

プロパティー名 値の例 内容
hbase.rootdir file:///C:/cygwin/tmp/hbase/data
hdfs://localhost:9000/hbase
HBaseのデータを格納する場所。
hbase.cluster.distributed false クラスターモードの設定。
単独環境擬似分散環境ではfalseを指定する。
(デフォルトはfalse)
hbase.tmp.dir C:/cygwin/tmp/hbase/tmp テンポラリーディレクトリー。
hbase.zookeeper.quorum 127.0.0.1 ZooKeeperのIPアドレス。
(デフォルトの「localhost」のままだと、HBaseの起動時に警告が出る)
0.89で単独環境と擬似分散環境ではZooKeeperが使われなくなったので、その環境では設定不要。[2010-07-06]

hbase-site.xmlのプロパティー

はぁー、英語はやっぱりさっぱり分からん(嘆)

hbase-0.20.3〜hbase-0.20.4
プロパティー名 デフォルト値 内容
hbase.rootdir file:///tmp/hbase-${user.name}/hbase regionサーバーで共有されるディレクトリー。
URI形式で記述する。
例:hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR
Windows単独環境の設定
擬似分散環境の設定
hbase.master.port 60000 masterがバインドするポート番号。
hbase.cluster.distributed false クラスターモードの設定。
false:Zookeeperで管理された単独環境と擬似分散環境
true:Zookeeper Quorumで管理されない分散環境
hbase.tmp.dir /tmp/hbase-${user.name} ローカルファイルシステムの作業ディレクトリー。
hbase.master.info.port 60010 HBaseマスターのウェブUIのポート番号。
http://マスターサーバー:60010」でブラウザーからマスターの状態を照会できる。[2010-03-30]
-1にすると、ウェブUIは稼動しない。
hbase.master.info.bindAddress 0.0.0.0 hbase master web UIのIPアドレス。
hbase.client.write.buffer 2097152 Byte 書込バッファーのサイズ。
デフォルトは2MB。
hbase.master.
meta.thread.rescanfrequency
60000 ミリ秒 rootとmetaテーブルをスキャンする間の最大スリープ時間(?)
デフォルトは1分。
hbase.master.lease.period 120000 ミリ秒 HMasterサーバーが待つ時間(?)
regionサーバーがこの時間以内に応答しないと、死んだものとみなされる。
デフォルトは2分。
分散環境においては、必要に応じて値を大きくする。
hbase.regionserver.port 60020 HBase regionサーバーのポート番号。
hbase.regionserver.info.port 60030 HBaseリージョンサーバーのウェブUIのポート番号。
http://リージョンサーバー:60030」でブラウザーからリージョンサーバーの状態を照会できる。[2010-03-30]
-1にすると、ウェブUIは稼動しない。
hbase.regionserver.info.port.auto false infoサーバーのポートを自動的にバインドするかどうか。
hbase.regionserver.info.portが既に使われていたら空きポートを自動的に探す。
テスト時に便利らしい。
hbase.regionserver.info.bindAddress 0.0.0.0 HBaseリージョンサーバーのウェブUIのIPアドレス。
hbase.regionserver.class ….HRegionInterface リモートregionサーバーへ接続する為に使うクラスのFQCN
hbase.client.pause 1000 ミリ秒 クライアントが何か(HBaseへの接続とか)に失敗した際の、リトライするまでの間隔(待ち時間)。
デフォルトは1秒。
hbase.client.retries.number 10 クライアントが何か(HBase(root regionサーバー)への接続とかCellの取得とか)に失敗した際の、最大リトライ回数。
hbase.client.scanner.caching 1 Scanにおいて、サーバーとの1回の通信でクライアント側でキャッシュする行数(ROWの個数)。[2010-07-25]
Scan#setCaching()によって、個別に指定できる。
hbase.regionserver.lease.period 60000 ミリ秒 HRegionが待つ時間(?)
クライアントがこの時間以内に応答しないと、死んだものとみなされる。
デフォルトは1分。
hbase.regionserver.handler.count 25 regionサーバー群で同じプロパティーが使われていた際にspun upする回数(?)
hbase.regionserver.msginterval 1000 ミリ秒 regionサーバーからHMasterへメッセージを送信する間隔。
デフォルトは1秒。
10ノード以上の分散環境の場合で3秒くらい?
hbase.regionserver.flushlogentries 100 HLogのエントリーがこの個数より多く蓄積されるとHDFSに同期される。
hbase.regionserver.
optionallogflushinterval
10000 ミリ秒 HLogのエントリーが前回同期されてから この時間が過ぎるとHDFSに同期される。
デフォルトは10秒。
(エントリーの個数が少ないとき用)
hbase.regionserver.logroll.period 3600000 ミリ秒 コミットログをrollする時間。
デフォルトは1時間。
hbase.regionserver.
thread.splitcompactcheckfrequency
20000 ミリ秒 regionサーバーが分割/圧縮(?)のチェックを行う頻度。
デフォルトは20秒。
hbase.regionserver.
nbreservationblocks
4 ブロック  
hbase.zookeeper.dns.interface default ZooKeeperが使用するNetwork Interfaceの名前。
hbase.zookeeper.dns.nameserver default ZooKeeperが使用するDNSサーバーのホスト名(IPアドレス)。
hbase.regionserver.dns.interface default regionサーバーが使用するNetwork Interfaceの名前。
hbase.regionserver.dns.nameserver default regionサーバーが使用するDNSサーバーのホスト名(IPアドレス)。
hbase.master.dns.interface default masterが使用するNetwork Interfaceの名前。
hbase.master.dns.nameserver default masterが使用するDNSサーバーのホスト名(IPアドレス)。
hbase.regionserver.global.memstore.
upperLimit
0.4 (?)
デフォルトはヒープの40%
hbase.regionserver.global.memstore.
lowerLimit
0.35 デフォルトはヒープの35%
hbase.hbasemaster.maxregionopen 120000 ミリ秒 regionがオープンするまで待つ時間。
デフォルトは2分。
この時間が過ぎると、新しいregionサーバーが割り当てられる。
hbase.regions.percheckin 10 1つのregionサーバーに割り当てることのできるregionの個数。
hbase.server.thread.wakefrequency 10000 ミリ秒 仕事を探す間(?)にスリープする時間。
デフォルトは10秒。
hbase.hregion.memstore.flush.size 67108864 Byte memstoreがこのサイズを超えたら、ディスクにフラッシュされる。
デフォルトは64MB。
hbase.server.thread.wakefrequency毎にチェックされる。
hbase.hregion.preclose.flush.size 5242880 Byte HBase0.20.4以降。[2010-05-08]
クローズ時にregion内のmemstoreがこのサイズ以上だったら、「pre-flush」が実行されてmemstoreがクリアされる。
デフォルトは5MB。
hbase.hregion.memstore.
block.multiplier
2 ブロック  
hbase.hregion.max.filesize 268435456 Byte HStoreFileの最大サイズ。
デフォルトは256MB。
1つのColumnFamilyがこのサイズを超えたら、2つのHRegionに分割される。
hbase.hstore.compactionThreshold 3 HStore内のHStoreFileの個数がこの値を超えたら、圧縮(?)される。
hbase.hstore.blockingStoreFiles 7 HStore内のHStoreFileの個数がこの値を超えたら、圧縮(?)が完了するかblockingWaitTimeが過ぎるまで更新がブロックされる。
hbase.hstore.blockingWaitTime 90000 ミリ秒 blockingStoreFilesのブロックを待つ時間。
デフォルトは90秒。
hbase.hstore.compaction.max 10 'minor' compaction毎のHStoreFileの最大数。
hbase.hregion.majorcompaction 86400000 ミリ秒 region内の全HStoreFileが'minor' compactionされるまでの時間。
デフォルトは1日。
hbase.regions.slop 0.3 regionサーバーのregionが再バランス(?)される割合。
デフォルトはHBase0.20.3では10%、HBase0.20.4では30%。[/2010-05-08]
hfile.min.blocksize.size 65536 Byte ファイルの最小ブロックサイズ。
デフォルトは64kB。
小さなCellを扱っていてランダムアクセスを速くしたいなら、小さな値を指定する。
hfile.block.cache.size 0.2 HFile/StoreFileによって使われるキャッシュを最大ヒープ(-Xmx)の何パーセントにするか。
デフォルトは20%
0にすると無効になる。
hbase.hash.type murmur HashFunctionクラスのハッシュアルゴリズム。
murmur:MurmurHash
jenkins:JenkinsHash
zookeeper.session.timeout 60000 ミリ秒 ZooKeeperのセッションタイムアウト時間。
デフォルトは1分。
ZooKeeper Sessions
zookeeper.retries 5 ZooKeeperへの接続のリトライ回数。
zookeeper.pause 2000 ミリ秒 ZooKeeperへのリトライ時にスリープする時間。
デフォルトは2秒。
zookeeper.znode.parent /hbase ZooKeeperにおけるHBaseのルートZNode。
HBaseのZooKeeperの全てのファイルはこのノードの下に相対パスで指定される。
zookeeper.znode.rootserver root-region-server root regionの位置を固定するZNodeのパス。
親ノードはzookeeper.znode.parentで指定された位置になるので、デフォルトでは「/hbase/root-region-server」に置かれることになる。
zookeeper.znode.safemode safe-mode クラスターがセーフモードを脱した事を示す短命なZNodeのパス。
親ノードはzookeeper.znode.parentで指定された位置になるので、セーフモードのフラグはデフォルトでは「/hbase/sefe-mode」に置かれることになる。
hbase.zookeeper.quorum localhost ZooKeeper Quorumのサーバーをカンマ区切りで指定する。
localhost(127.0.0.1)は単独環境および擬似分散環境用。
hbase.zookeeper.peerport 2888 ZooKeeperがお互いに通信する為のポート番号。
Running Replicated ZooKeeper
hbase.zookeeper.leaderport 3888 leader electionに使われるポート番号。

zoo.cfg関連のプロパティー
プロパティー名 デフォルト値 内容
hbase.zookeeper.property.tickTime 3000 ミリ秒 デフォルトでは3秒。
→zookeeper.session.timeout
hbase.zookeeper.property.initLimit 10  
hbase.zookeeper.property.syncLimit 5  
hbase.zookeeper.property.dataDir ${hbase.tmp.dir}/zookeeper スナップショットが置かれるディレクトリー。
hbase.zookeeper.property.clientPort 2181 クライアントからの接続に使用するポート番号。
hbase.zookeeper.property.maxClientCnxns 30 接続 1つのクライアント(IPアドレスによって識別)から受け付けるソケット接続数の上限。
cnxnsってconnectionsのことか?

HBaseへ戻る / Java目次へ行く / 技術メモへ戻る
メールの送信先:ひしだま