Gearpump 高可用性ガイド
HAをサポートするために、複数のノード上でマスターを開始することができます。一貫性を決定するために定足数を構成するでしょう。例えば、5つのノード上でマスターを開始し、2つのノードがダウンした場合、クラスタはまだ一貫性があり機能します。
以下はHAモードを有効にするステップです:
1. 設定します。
マスター マシーンを選択します。
全てのノードにパッケージを分配します。全てのノード上のconf/gear.conf
を編集します。以下を設定し
gearpump.hostname
がホスト名(あるいはip)を、
gearpump.cluster.masters
がマスターノードを示すようにしなければなりません。例えば、もし3つのマスターノード(node1, node2 および node3)がある場合、gearpump.cluster.masters
は以下のように設定することができます
gearpump.cluster {
masters = ["node1:3000", "node2:3000", "node3:3000"]
}
分散ストレージがアプリケーションのjarを格納するように設定
conf/gear.conf
の中で、gearpump.jarstore.rootpath
について、アプリケーションのjarのためのストレージフォルダを選択してください。このjarストレージを高可用にする必要があります。二つのストレージタイプをサポートします:
1). HDFS gearpump.jarstore.rootpath
をこのように設定する必要があります
hdfs://host:port/path/
2). 共用NFSフォルダ まず、NFSディレクトリをマスターノードのすべてのマシーン上でローカルディレクトリ(同じパス)に割り当てる必要があります。そして、gearpump.jarstore.rootPath
を以下のように設定する必要があります:
file:///your_nfs_mapping_directory
3). この値を設定しない場合は、マスターノードのローカルディレクトリを使うでしょう。注意!この場合、HAの保証はありません。つまり、マスターがダウンした場合実行中のアプリケーションを回復することができません。
2. デーモンの開始。
node1, node2, node3上でマスターを開始する
## on node1
bin/master -ip node1 -port 3000
## on node2
bin/master -ip node2 -port 3000
## on node3
bin/master -ip node3 -port 3000
3. 完了!
これで、高可用性のHAクラスタを手に入れました。どのノードでもkillすることができ、マスターのHAが効果を表します。
注意: マスターノードがフェイルオーバーするには15秒ほど掛かります。gear.conf
内のgearpump-master.akka.cluster.auto-down-unreachable-after=10s
を追加設定するか、それを小さな値にすることで、フェイルオーバーのタイムアウトを変更することができます。