Pertanyaan Bagaimana cara mengatur cluster ES?


Dengan asumsi saya punya 5 mesin, saya ingin menjalankan klaster elasticsearch, dan semuanya terhubung ke drive bersama. Saya menaruh satu salinan elasticsearch ke drive bersama itu sehingga ketiganya dapat melihatnya. Apakah saya baru saja memulai elasticsearch pada drive bersama di semua mesin saya dan pengelompokan akan secara otomatis bekerja sihirnya? Atau apakah saya harus mengkonfigurasi pengaturan khusus untuk mendapatkan elasticsearch untuk menyadari bahwa yang berjalan di 5 mesin? Jika ya, pengaturan apa yang relevan? Haruskah saya khawatir tentang mengonfigurasi replika atau apakah itu ditangani secara otomatis?


75
2018-05-29 18:16


asal


Jawaban:


sangat mudah.

Anda akan membutuhkan setiap mesin untuk memiliki salinan ElasticSearch sendiri (cukup salin yang Anda miliki sekarang) - alasannya adalah bahwa setiap mesin / node apa pun yang akan menyimpan file itu sendiri yang dibuang di seberang cluster.

Satu-satunya hal yang benar-benar perlu Anda lakukan adalah mengedit file konfigurasi untuk memasukkan nama cluster.

Jika semua mesin memiliki elasticsearch dengan nama cluster yang sama akan melakukan sisanya secara otomatis (selama semua mesin berada di jaringan yang sama)

Baca di sini untuk membantu Anda memulai: https://www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html

Saat Anda membuat indeks (tempat data masuk), Anda menentukan waktu berapa banyak replika yang Anda inginkan (mereka akan didistribusikan di sekitar kluster)


49
2018-05-29 18:23



Biasanya ditangani secara otomatis.

Jika autodiscovery tidak berfungsi. Edit file konfigurasi pencarian elastis, dengan mengaktifkan penemuan unicast

Simpul 1:

    cluster.name: mycluster
    node.name: "node1"
    node.master: true
    node.data: true
    discovery.zen.ping.multicast.enabled: false
    discovery.zen.ping.unicast.hosts: ["node1.example.com"]

Simpul 2:

    cluster.name: mycluster
    node.name: "node2"
    node.master: false
    node.data: true
    discovery.zen.ping.multicast.enabled: false
    discovery.zen.ping.unicast.hosts: ["node1.example.com"]

dan seterusnya untuk simpul 3,4,5. Buat node 1 master, dan sisanya hanya sebagai node data.

Edit: Harap dicatat bahwa menurut aturan ES, jika Anda punya N node, lalu berdasarkan konvensi, N/2+1 node harus master untuk mekanisme fail-over Mereka mungkin atau mungkin bukan node data, meskipun.

Juga, jika penemuan otomatis tidak berfungsi, alasan yang paling mungkin adalah karena jaringan tidak mengizinkannya (dan karenanya dinonaktifkan). Jika terlalu banyak ping penemuan otomatis terjadi di beberapa server, sumber daya untuk mengelola ping tersebut akan mencegah layanan lain berjalan dengan benar.

Untuk mantan, pikirkan 10.000 cluster node dan semua 10.000 node melakukan ping otomatis.


51
2018-03-04 07:11



Saya mencoba langkah-langkah yang disarankan oleh @KannarKK pada ES 2.0.2, namun, saya tidak dapat menjalankan dan menjalankan klaster. Terbukti, saya menemukan sesuatu, karena saya telah menetapkan nomor port tcp di Master, pada konfigurasi Slave discovery.zen.ping.unicast.hosts membutuhkan nomor port Guru bersama dengan alamat IP (nomor port tcp) untuk penemuan. Jadi ketika saya mencoba konfigurasi berikut, ini bekerja untuk saya.

Simpul 1

cluster.name: mycluster
node.name: "node1"
node.master: true
node.data: true
http.port : 9200
tcp.port : 9300
discovery.zen.ping.multicast.enabled: false
# I think unicast.host on master is redundant.
discovery.zen.ping.unicast.hosts: ["node1.example.com"]

Simpul 2

cluster.name: mycluster
node.name: "node2"
node.master: false
node.data: true
http.port : 9201
tcp.port : 9301
discovery.zen.ping.multicast.enabled: false
# The port number of Node 1
discovery.zen.ping.unicast.hosts: ["node1.example.com:9300"]

3
2018-01-24 14:40