0

マスタ、クライアント1つ、データノード2つのElasticsearchクラスタを設定しました。クライアントと2つのデータノードは1つのマシンにあり、マスターは別のマシンにあります。次のように IPアドレスは以下のとおりです。インデックス用のプライマリノードとレプリカノードを割り当てる弾性検索

192.168.1.3 - master 
192.168.1.2:9201 - client 
192.168.1.2:9200 - data1 
192.168.1.2:9202 - data2 

私は2つのインデックス(movie-amemovie-eur)に属するデータを持っており、以下に示すように、ノードにデータを保存しておきたいです。 logstashを使用してデータノードにデータをインポートしました。

映画-AME

primary shards in data1 
1 replica in data2 

logstash.conf

input { 
    file { 
    path => "C:\Users\azinneera\Desktop\logstash-5.1.1\bin\data.csv" 
    start_position => "beginning"  
    } 
} 

filter { 
    csv { 
     separator => "," 
     columns => ["ID","MovieName","ReleaseYear","Country","Genres"] 
    } 
} 

output { 
    elasticsearch { 
     action => "index" 
     hosts => ["192.168.1.2:9200"] 
     index => "movie-ame" 
    } 
    stdout {codec => rubydebug} 
} 

映画 - EUR

primary shards in data2 
1 replica in data1 

logstash.conf

input { 
    file { 
    path => "C:\Users\azinneera\Desktop\logstash-5.1.1\bin\movieeur.csv" 
    start_position => "beginning"  
    } 
} 

filter { 
    csv { 
     separator => "," 
     columns => ["ID","MovieName","ReleaseYear","Country","Genres"] 
    } 
} 

output { 
    elasticsearch { 
     action => "index" 
     hosts => ["192.168.1.2:9202"] 
     index => "movie-eur" 
    } 
    stdout {codec => rubydebug} 
} 

しかし、DATA1は、インデックスとの両方のインデックスのレプリカの両方のためのプライマリとして機能しているようですがDATA2です。

これは、クラスタの状態が間違って何もありません enter image description here enter image description here

+0

何が問題なのですか? – baudsp

+0

私が質問したように、data2はインデックスmovie-eurのプライマリとして動作し、data1はレプリカを保持する必要があります。クラスタ状態を見ると、これは起こっていないようです。むしろdata1は両方のインデックスのプライマリです。両方のインデックスのノードIDは同じです。 –

+0

あなたが何を意味しているのか見ていますが、それがどのように問題であるかわかりません。レプリカとプライマリの違いは、プライマリが現在使用中でレプリカが使用されていないことです。プライマリが使用可能でない場合は、レプリカが使用されます。 – baudsp

答えて

1

を示したものです。 Elasticsearchは、プライマリ/レプリカを異なるノードに配置し、シャードごとに同期させます。

Elasticsearchからデータをクエリすると、レプリカのプライマリまたは1つからクエリが実行されます(同一のコピーと見なされるため)。全体的に、Elasticsearchはロードバランシングを処理し、あなたはそれを心配する必要はありません。

本当に心配したい場合は、settingsを調整することができます。