2016-02-05 50 views
0

我的第一個配置是這樣的:無法獲得第二個節點開始elasticsearch

cluster.name: cluster 
node.name: "node-1" 
node.master: true 
node.data: true 
network.host: localhost 
transport.tcp.port: 9302 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["localhost"] 

我的第二個節點的配置是:

cluster.name: cluster 
node.name: "node-2" 
node.master: false 
node.data: true 
network.host: 172.28.29.49 (IP OF THE MASTER NODE) 
discovery.zen.ping.multicast.enabled: false 
discovery.zen.ping.unicast.hosts: ["172.28.29.49:9302"] 

我跑這對開虛擬機。 這個問題很基本,爲什麼我的兩個節點不能互相連接。

如果您願意,可以忽略一切。它只是一些歷史記錄:

我想設置兩個節點的原因是因爲我丟失了大量數據(https://stackoverflow.com/questions/35191543/elasticsearch-lost-data-after-power-cut)。 我的計劃是將已經索引的索引複製到一個新的節點中,但那不起作用,只留下了一大堆unassigned_shards。所以我做了一個腳本來自動重定位它們,但是我不能將它們重定位到同一個節點,這就是爲什麼我需要一個新節點。如果有人知道如何將碎片重新定位到同一節點或知道另一個修復程序,以解決我在舊問題中遇到的問題,那麼這將很棒

+0

我覺得你必須提到在客戶端節點的TCP端口太 –

回答

1

如果您運行的是ES 2.x,則每個節點默認綁定到本地主機,除非另有規定。

就你而言,網絡配置不正確(綁定主機和單播主機列表)。您的第一個節點需要綁定到您的第二個主機可以看到的IP地址,並且第二個主機需要綁定到您的第一個主機可以看到的IP地址,否則兩者都將失明並且不會形成任何羣集。

所以節點1需要配置是這樣的:

network.host: 172.28.29.49 
discovery.zen.ping.unicast.hosts: ["IP.OF.NODE.2"] 

和Node-2需要進行配置是這樣的:

network.host: IP.OF.NODE.2 
discovery.zen.ping.unicast.hosts: ["172.28.29.49:9302"] #Need port number here 
+0

它工作,除了我需要非主節點的端口號。 –

+0

是真的,我的不好。恭喜你弄明白了! – Val