12

Homebrew を使用して Mac OS X に ElasticSearchをインストールしました。できます。クラスタは「緑色」の healthで開始されました。ただし、データを追加した直後は「黄色」になっています。

クラスターの健全性のステータスは、緑、黄、または赤です。シャード レベルでは、赤色のステータスは特定のシャードがクラスターに割り当てられていないことを示し、黄色はプライマリ シャードが割り当てられているがレプリカは割り当てられていないことを示し、緑色はすべてのシャードが割り当てられていることを示します。インデックス レベルのステータスは、最悪のシャード ステータスによって制御されます。クラスタ ステータスは、最悪のインデックス ステータスによって制御されます。

そのため、レプリカ シャードが割り当てられていません。それらをどのように割り当てますか?(私は大声で考えています。)

Shay によると、「クラスターのヘルス ステータスが黄色になり続けています」 :緑のクラスター状態を取得するノード。"

そのため、2 つ目のノードを起動する必要があります。私はこれをしました:

cd ~/ライブラリ/LaunchAgents/
cp homebrew.mxcl.elasticsearch.plist homebrew.mxcl.elasticsearch-2.plist
# 8 行目を次のように変更: homebrew.mxcl.elasticsearch-2
launchctl load -wF ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch-2.plist

今、私は「Korvus」http://localhost:9200/と「Iron Monger」をオンにしていhttp://localhost:9201/ます。うーん。しかし、彼らがお互いについて知っている兆候は見られません。それらを相互に接続/紹介するにはどうすればよいですか?

注: Zen Discoveryを読みましたが、まだ悟りを感じていません。

更新 2012 年 8 月 13 日午後 11 時 30 分 EST:

ここに私の2つのノードがあります:

curl "http://localhost:9200/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

curl "http://localhost:9201/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

更新 2012 年 8 月 13 日午後 11 時 35 分 EST:

明確にするために、私の質問は、を設定して問題を「無視」する方法ではありませんindex.number_of_replicas: 0。複数のノードを接続したい。

更新 2012 年 8 月 13 日午後 11 時 48 分 EST:

elasticsearch.yml と elasticsearch_david.log を含む二重の要点を投稿しました。両方のノードが自分自身を「マスター」と呼んでいるように見えます。それは私が期待すべきことですか?

更新 2012 年 8 月 14 日午前 12 時 36 分 EST:

そして小説は続きます!:) すべての外部ネットワークから Mac を切断し、ノードを再起動すると、お互いが見つかります。ダブルウート。これにより、問題はネットワーク/マルチキャスト構成にあると思われます。現在、私はこれを私の設定に持っています: network.host: 127.0.0.1. おそらくこれは正しくありませんか?

4

3 に答える 3

19

解決しました。使用しないでくださいnetwork.host: 127.0.0.1。その行をコメントアウトしたままにして、自動的に派生させます。

デフォルトelasticsearch.ymlは正しかった。Homebrewインストーラーによる構成の調整により、ループ127.0.0.1バックインターフェイスが指定されます。

# Set up ElasticSearch for local development:
inreplace "#{prefix}/config/elasticsearch.yml" do |s|
  # ...
  # 3. Bind to loopback IP for laptops roaming different networks
  s.gsub! /#\s*network\.host\: [^\n]+/, "network.host: 127.0.0.1"
end

HomebrewIssueTrackerに問題を提出しました。

于 2012-08-14T04:52:03.670 に答える
13

お気づきのとおり、レプリカを使用してインデックスを作成しましたが、クラスター内にノードが 1 つしかないため、クラスターが黄色になりました。この問題を解決する 1 つの方法は、それらを 2 番目のノードに割り当てることです。もう 1 つの方法は、レプリカをオフにすることです。レプリカの数は、インデックスの作成時に指定できます。new-index-name次のコマンドは、シャードが 1 つでレプリカがない名前の新しいインデックスを作成します。

curl -XPUT 'localhost:9200/new-index-name' -d '
{
    "settings": {
        "index" : {
            "number_of_shards" : 1,
            "number_of_replicas" : 0
        }
    }
}
'

Indices Update Settings APIを使用してインデックスが作成された後で、レプリカの数を変更することもできます。次のコマンドは、クラスター内のすべてのインデックスのレプリカの数を 0 に変更します。

curl -XPUT 'localhost:9200/_settings' -d '
{
    "index" : {
        "number_of_replicas" : 0
    }
}
'

cluster health コマンドを実行して、ノードが相互に検出されたことを確認できます。

$ curl "http://localhost:9200/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 30,
  "active_shards" : 55,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
} 

この行"number_of_data_nodes" : 2,は、クラスターが 2 つのノードで構成されていることを示しています。つまり、それらがお互いを見つけたことを意味します。Nodes Infoコマンドを実行して、クラスターがどのノードで構成されているかを確認することもできます。

curl "http://localhost:9200/_cluster/nodes?pretty=true"
于 2012-08-14T02:46:49.157 に答える
0

私は同じ問題に直面しました。外部ネットワークがオンの場合、2 つのノード (2 つの Elasticsearch インスタンスが異なる yml ファイルで実行されます: elasticsearch - config=/usr/local/opt/elasticsearch/config/elasticsearch.yml elasticsearch --config=/usr/local/opt/ Elasticsearch/config/elasticsearch-1.yml) はお互いを見つけることができません。最初のインスタンスは黄色の状態で、2 番目のインスタンスにはレプリカが割り当てられていません。

解決方法: sudo route add -net 224.0.0.0/4 127.0.0.1

参照元:

https://issues.jboss.org/browse/JGRP-1808

于 2015-02-06T19:56:58.120 に答える