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 |
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.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に使われるポート番号。 |
プロパティー名 | デフォルト値 | 内容 | |
---|---|---|---|
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のことか? |