Elasticsearch为索引分配主节点和副本节点

时间:2016-12-19 11:02:38

标签: elasticsearch logstash cluster-computing distributed-computing

我已经设置了一个Elasticsearch集群,其中包含1个主服务器,1个客户端和2个数据节点。客户端和2个数据节点位于一台计算机中,主服务器位于单独的计算机上。 知识产权如下:

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

我有属于两个索引(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

1 个答案:

答案 0 :(得分:1)

没有错。 Elasticsearch会将主/副本放在不同的节点上,并在每个分片的基础上保持同步。

当您从Elasticsearch查询数据时,它将从主副本或其中一个副本进行查询(因为它们被视为相同的副本)。总的来说,Elasticsearch将处理负载平衡,您不必担心它。

如果您确实想要担心,可以调整一些settings