NHNカンファレンスでもらったHBaseの本を、ざっと斜め読みして、適当にまとめるシリーズ「HBaseを読む」の続きです。
ちゃんとした情報を知りたい人は、HBaseの本を見てください。
今回は2.2.2から
2.2.2 ソフトウェア
2.2.2.1 オペレーティングシステム
ここ2~3年で言えば、HBaseはLinux上で使われるのが好まれた
HBaseクラスタの基盤としてよく使われているOS
CentOS
Fedora
Debian
Ubuntu
Solaris
Red Hat Enterprise Linux
ユーザーにとって快適で、既存のインフラに適合するものを選ぶ
2.2.2.2 ファイルシステム
利用されている一般的なファイルシステム
ext3
最終アクセス時刻処理を無効にするとパフォーマンス向上
呼びブロック数を減らす→tune2fs -m 1 デバイス名
ext4
XFS
ZFS
既存のインフラに適合するものを選ぶ
2.2.2.3 Java
バージョン1.6以上
パスが見つからない場合
conf/hbase-env.shのJAVA_HOMEの値を修正
2.2.2.4 Hadoop
特定のバージョンとだけ動作する
→リモートプロシージャコールに関係
Hadoopをビルドしたくない場合、
パッチ適用済みのディストリを使う
clouderaのCDH3
バージョンをあわせることが「きわめて重要」
ミスマッチの場合
エラーを返さず、固まったまま
2.2.2.5 SSH
リモートのデーモン管理に使う
sshがインストール、sshdが動作している
OpenSSH
ローカルノードを含む全てのノードで
パスワードなしでSSHが動く必要
→公開鍵のペア必要
パスフレーズも追加してください
2.2.2.6 ドメインネームサービス
DNSの正引きと逆引き、どちらも動作していること
正引きは、以下のコマンドで確認できる
ping -c 1 ホスト名
複数のインターフェース
hbase.regionserver.dns.interfaceを設定
別のネームサーバー
hbase.regionserver.dns.nameserverを設定
2.2.2.7 時刻の同期
クラスタノードのクロック:基本的に一致していること
→クラスタでNTPを動作等
怪しい振る舞いを見たら、システムの時刻を確認
2.2.2.8 ファイルハンドラとプロセスの制御
ulimit -nのデフォルトは1024:不十分。
I/Oエラーになる
10000以上にする
/etc/security/limits.confファイルのnprocの値
調節するのも考えるべきかも
※コラム ubuntuでのファイルハンドラーの設定
/etc/security/limits.confに以下の行追加
hadoop - nofile 32768
hadoopは、HadoopとHBaseを実行しているユーザーに置き換え
/etc/pam.d/common-sessionに以下の行をファイルの最後に追加
session required pam_limits.so
2.2.2.9 データノードのハンドラ
Hadoopのconf/hdfs-site.xmlの
xcievers(スペルが間違っている)の値
最低でも4096
この設定をしておかないとおかしな生涯
2.2.2.10 スワップの多発
よくない
/etc/sysctl.confに以下の行を追加すると起こりにくくなる
vm.swappiness=5
2.2.2.11 Windows
お勧めできません
次回から2.3
ちゃんとした情報を知りたい人は、HBaseの本を見てください。
今回は2.2.2から
2.2.2 ソフトウェア
2.2.2.1 オペレーティングシステム
ここ2~3年で言えば、HBaseはLinux上で使われるのが好まれた
HBaseクラスタの基盤としてよく使われているOS
CentOS
Fedora
Debian
Ubuntu
Solaris
Red Hat Enterprise Linux
ユーザーにとって快適で、既存のインフラに適合するものを選ぶ
2.2.2.2 ファイルシステム
利用されている一般的なファイルシステム
ext3
最終アクセス時刻処理を無効にするとパフォーマンス向上
呼びブロック数を減らす→tune2fs -m 1 デバイス名
ext4
XFS
ZFS
既存のインフラに適合するものを選ぶ
2.2.2.3 Java
バージョン1.6以上
パスが見つからない場合
conf/hbase-env.shのJAVA_HOMEの値を修正
2.2.2.4 Hadoop
特定のバージョンとだけ動作する
→リモートプロシージャコールに関係
Hadoopをビルドしたくない場合、
パッチ適用済みのディストリを使う
clouderaのCDH3
バージョンをあわせることが「きわめて重要」
ミスマッチの場合
エラーを返さず、固まったまま
2.2.2.5 SSH
リモートのデーモン管理に使う
sshがインストール、sshdが動作している
OpenSSH
ローカルノードを含む全てのノードで
パスワードなしでSSHが動く必要
→公開鍵のペア必要
パスフレーズも追加してください
2.2.2.6 ドメインネームサービス
DNSの正引きと逆引き、どちらも動作していること
正引きは、以下のコマンドで確認できる
ping -c 1 ホスト名
複数のインターフェース
hbase.regionserver.dns.interfaceを設定
別のネームサーバー
hbase.regionserver.dns.nameserverを設定
2.2.2.7 時刻の同期
クラスタノードのクロック:基本的に一致していること
→クラスタでNTPを動作等
怪しい振る舞いを見たら、システムの時刻を確認
2.2.2.8 ファイルハンドラとプロセスの制御
ulimit -nのデフォルトは1024:不十分。
I/Oエラーになる
10000以上にする
/etc/security/limits.confファイルのnprocの値
調節するのも考えるべきかも
※コラム ubuntuでのファイルハンドラーの設定
/etc/security/limits.confに以下の行追加
hadoop - nofile 32768
hadoopは、HadoopとHBaseを実行しているユーザーに置き換え
/etc/pam.d/common-sessionに以下の行をファイルの最後に追加
session required pam_limits.so
2.2.2.9 データノードのハンドラ
Hadoopのconf/hdfs-site.xmlの
xcievers(スペルが間違っている)の値
最低でも4096
この設定をしておかないとおかしな生涯
2.2.2.10 スワップの多発
よくない
/etc/sysctl.confに以下の行を追加すると起こりにくくなる
vm.swappiness=5
2.2.2.11 Windows
お勧めできません
次回から2.3