2011-12-10 25 views
0

2台の異なるマシンでBigCouchを正常にセットアップしました。どちらもローカルで非常にうまく動作します。 curl -X PUT machine1:5986/nodes/bigcouch @ machine2 -d {} curl -X PUT machine2:5986/nodes/bigcouch @ machine1 -d {}BigCouchクラスタ接続の問題

このコマンドのいずれかまたは両方を使用してクラスタに参加させると、

私は常に肯定的な結果を受け取ります。データベースノードには、bigcouch @ machine2、bigcouch @ machine1という2つのドキュメントがあります。しかし、実際には、それは常に悲惨です。 BigCouchのコマンドラインでこのエラーメッセージが表示されました

= *エラーレポート==== 2011年9月12日:: 20:01:40 ===エラー処理中< 0.3117.0>ノード 'bigcouch {mem3_rep、rexi_call、2}、{mem3_rep、replicate_batch、1}、{mem3_rep、go、3}、{mem3_rep、go、2}}のように、 < 148> 1 2011-12-09T19:01:40.559992Z machine1 twig < 0.159.0> mem3_sync nodes - > 'bigcouch @ machine2' {{rexi_DOWN、noconnect}、[{mem3_rep、 < 148> 1 2011-12-09T19:01:40.560106Z machine1 twig < 0.159.0このページのトップへ関連するQ&Aこのページの先頭ですこのページの本文へYahoo!知恵袋ログインIDでもっと便利に[新規取得] Yahoo! JAPAN - ヘルプトップカテゴリ知恵袋トップエンターテインメントと趣味暮らしと生活ガイドインターネット、 > {mem3_rep、rexi_call、2}、{mem3_rep、replicate_batch、1}、{mem3_rep、go、3}のように、 、{mem3_rep、go、2}]} <38> 1 2011-12-09T19:01:40.560205Z machine1 twig < 0.159.0> -------- - mem3_sync _users - > 'bigcouch @ machine2' {{rexi_DOWN、noconnect}、[{mem3_rep、プロセスのエラー< [エラー] [エミュレータ] [--------]エラーが発生しました。 {{rexi_DOWN、noconnect}、{{mem3_rep、rexi_call、2}、{mem3_rep、replicate_batch、1}、{mem3_rep、go、3}、{mem3_rep、rexi_call、2}の出口値を持つノード 'bigcouch @ machine2'147> 1 2011-12-09T19:01:45.560979Z machine1 twig emulator msg - プロセス内エラー< 0.3198.0>終了値を持つ 'bigcouch @ machine1'ノード上:{{rexi_DOWN、noconnect} 、[{mem3_rep、rexi_call、2}、{mem3_rep、replicate_batch、1}、{mem3_rep、go、3}、{mem3_rep、go、2}}} *

恐らくファイアウォールされていますか?はいの場合、pleseはノードがお互いに接続できるように範囲ポートを教えてくれます。そうでない場合は、私に説明して、それらを接続する方法を教えてください。

この文書では、ノードは互いにpingを実行でき、ノードは同じマジッククッキーを設定することを要求しています。私のマシンは互いにpingできますが、魔法のクッキーは何ですか?

答えて

0

ノードが最初に接続されたときに、更新メッセージを受信して​​他のノードと内部レプリケータを監視するさまざまなプロセスがあるため、時々このエラーが発生することがあります。これらのメッセージは無害ですが、 "noconnect"が永続的に見える場合は、何かが間違っています。

各インスタンスに/etc/vm.argsという2つの値が表示されます。-nameと-setcookie最初の-nameはノードを接続するときに使用する必要があるdoc idに対応します。 2番目は、すべてのerlangノードで同じものでなければならないマジッククッキーです。このクッキーが設定されていない場合、デフォルトで〜/ .erlang-cookieの値になります

"make dev"を実行すると、これらのビットをどのように設定するかを検査できる3ノードクラスタが構築されます。

また、片側の接続だけを実行する必要があります。内部レプリケータがノードdbsをクラスタ間で同期させるため、ノード2からノード1への接続

+0

また、ファイアウォールがある場合は、これを読む必要があります。http://www.erlang.org/faq/how_do_i.html#id55164 EPMDポート4369とポート範囲(たとえば9100-9105)を開く必要があります。最後に、その範囲だけを使用するようにerlang VMに説得してください。リンクされたページには1つの方法がありますが、vm.argsファイルに '-kernel inet_dist_listen_min 9001'を追加することもできます。 –