Elasticsearch - Modul
Elasticsearch terdiri dari sejumlah modul, yang bertanggung jawab atas fungsinya. Modul ini memiliki dua jenis pengaturan sebagai berikut -
Static Settings- Pengaturan ini perlu dikonfigurasi di file config (elasticsearch.yml) sebelum memulai Elasticsearch. Anda perlu memperbarui semua node perhatian di cluster untuk mencerminkan perubahan dengan pengaturan ini.
Dynamic Settings - Pengaturan ini dapat disetel di Elasticsearch langsung.
Kami akan membahas berbagai modul Elasticsearch di bagian selanjutnya dari bab ini.
Perutean Tingkat Kluster dan Alokasi Pecahan
Pengaturan tingkat cluster memutuskan alokasi shard ke node yang berbeda dan realokasi shard ke cluster rebalance. Ini adalah pengaturan berikut untuk mengontrol alokasi shard.
Alokasi Shard Tingkat Cluster
Pengaturan | Nilai yang memungkinkan | Deskripsi |
---|---|---|
cluster.routing.allocation.enable | ||
semua | Nilai default ini memungkinkan alokasi shard untuk semua jenis shard. | |
pendahuluan | Ini memungkinkan alokasi shard hanya untuk shard utama. | |
new_primaries | Ini memungkinkan alokasi shard hanya untuk shard utama untuk indeks baru. | |
tidak ada | Ini tidak mengizinkan alokasi shard apa pun. | |
cluster.routing.allocation .node_concurrent_recoveries | Nilai numerik (secara default 2) | Ini membatasi jumlah pemulihan shard secara bersamaan. |
cluster.routing.allocation .node_initial_primaries_recoveries | Nilai numerik (secara default 4) | Ini membatasi jumlah pemulihan primer awal paralel. |
cluster.routing.allocation .same_shard.host | Nilai Boolean (secara default salah) | Ini membatasi alokasi lebih dari satu replika pecahan yang sama di node fisik yang sama. |
indices.recovery.concurrent _streams | Nilai numerik (secara default 3) | Ini mengontrol jumlah aliran jaringan terbuka per node pada saat pemulihan shard dari pecahan peer. |
indices.recovery.concurrent _small_file_streams | Nilai numerik (secara default 2) | Ini mengontrol jumlah aliran terbuka per node untuk file kecil yang berukuran kurang dari 5mb pada saat pemulihan pecahan. |
cluster.routing.rebalance.enable | ||
semua | Nilai default ini memungkinkan penyeimbangan untuk semua jenis pecahan. | |
pendahuluan | Hal ini memungkinkan penyeimbangan shard hanya untuk shard utama. | |
replika | Hal ini memungkinkan penyeimbangan pecahan hanya untuk pecahan replika. | |
tidak ada | Ini tidak mengizinkan penyeimbangan pecahan apa pun. | |
cluster.routing.allocation .allow_rebalance | ||
selalu | Nilai default ini selalu memungkinkan penyeimbangan ulang. | |
indices_primaries _active | Ini memungkinkan penyeimbangan ulang ketika semua pecahan utama dalam cluster dialokasikan. | |
Indices_all_active | Hal ini memungkinkan penyeimbangan ulang ketika semua pecahan utama dan replika dialokasikan. | |
cluster.routing.allocation.cluster _concurrent_rebalance | Nilai numerik (secara default 2) | Ini membatasi jumlah shard balancing bersamaan dalam cluster. |
cluster.routing.allocation .balance.shard | Nilai float (secara default 0.45f) | Ini menentukan faktor bobot untuk pecahan yang dialokasikan pada setiap node. |
cluster.routing.allocation .balance.index | Nilai float (secara default 0,55f) | Ini menentukan rasio jumlah pecahan per indeks yang dialokasikan pada node tertentu. |
cluster.routing.allocation .balance.threshold | Nilai float non negatif (secara default 1.0f) | Ini adalah nilai pengoptimalan minimum dari operasi yang harus dilakukan. |
Alokasi Shard Berbasis Disk
Pengaturan | Nilai yang memungkinkan | Deskripsi |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Nilai Boolean (secara default benar) | Ini mengaktifkan dan menonaktifkan penentu alokasi disk. |
cluster.routing.allocation.disk.watermark.low | Nilai string (secara default 85%) | Ini menunjukkan penggunaan disk secara maksimal; setelah titik ini, tidak ada pecahan lain yang dapat dialokasikan ke disk tersebut. |
cluster.routing.allocation.disk.watermark.high | Nilai string (secara default 90%) | Ini menunjukkan penggunaan maksimum pada saat alokasi; jika titik ini tercapai pada saat alokasi, maka Elasticsearch akan mengalokasikan pecahan tersebut ke disk lain. |
cluster.info.update.interval | Nilai string (secara default 30 detik) | Ini adalah interval antara pemeriksaan penggunaan disk. |
cluster.routing.allocation.disk.include_relocations | Nilai Boolean (secara default benar) | Ini memutuskan apakah akan mempertimbangkan shard yang saat ini sedang dialokasikan, sambil menghitung penggunaan disk. |
Penemuan
Modul ini membantu cluster untuk menemukan dan memelihara status semua node di dalamnya. Status cluster berubah ketika node ditambahkan atau dihapus darinya. Pengaturan nama cluster digunakan untuk membuat perbedaan logis antara cluster yang berbeda. Ada beberapa modul yang membantu Anda menggunakan API yang disediakan oleh vendor cloud dan seperti yang diberikan di bawah ini -
- Penemuan Azure
- Penemuan EC2
- Penemuan mesin komputasi Google
- Penemuan Zen
pintu gerbang
Modul ini mempertahankan status cluster dan data shard di seluruh cluster dimulai ulang. Berikut ini adalah pengaturan statis modul ini -
Pengaturan | Nilai yang memungkinkan | Deskripsi |
---|---|---|
gateway.expected_nodes | nilai numerik (secara default 0) | Jumlah node yang diharapkan berada di cluster untuk pemulihan shard lokal. |
gateway.expected_master_nodes | nilai numerik (secara default 0) | Jumlah node master yang diharapkan berada di cluster sebelum memulai pemulihan. |
gateway.expected_data_nodes | nilai numerik (secara default 0) | Jumlah node data yang diharapkan di cluster sebelum memulai pemulihan. |
gateway.recover_after_time | Nilai string (secara default 5m) | Ini adalah interval antara pemeriksaan penggunaan disk. |
cluster.routing.allocation. disk.include_relocations | Nilai Boolean (secara default benar) | Ini menentukan waktu menunggu proses pemulihan untuk dimulai terlepas dari jumlah node yang bergabung dalam cluster. gateway.recover_ after_nodes |
HTTP
Modul ini mengelola komunikasi antara klien HTTP dan Elasticsearch API. Modul ini dapat dinonaktifkan dengan mengubah nilai http.enabled menjadi false.
Berikut ini adalah pengaturan (dikonfigurasi di elasticsearch.yml) untuk mengontrol modul ini -
S.No | Pengaturan & Deskripsi |
---|---|
1 | http.port Ini adalah port untuk mengakses Elasticsearch dan berkisar antara 9200-9300. |
2 | http.publish_port Porta ini untuk klien http dan juga berguna jika ada firewall. |
3 | http.bind_host Ini adalah alamat host untuk layanan http. |
4 | http.publish_host Ini adalah alamat host untuk klien http. |
5 | http.max_content_length Ini adalah ukuran maksimum konten dalam permintaan http. Nilai defaultnya adalah 100mb. |
6 | http.max_initial_line_length Ini adalah ukuran maksimum URL dan nilai defaultnya adalah 4kb. |
7 | http.max_header_size Ini adalah ukuran header http maksimum dan nilai defaultnya adalah 8kb. |
8 | http.compression Ini mengaktifkan atau menonaktifkan dukungan untuk kompresi dan nilai default-nya salah. |
9 | http.pipelinig Ini mengaktifkan atau menonaktifkan pipelining HTTP. |
10 | http.pipelining.max_events Ini membatasi jumlah acara yang akan diantrekan sebelum menutup permintaan HTTP. |
Indeks
Modul ini memelihara pengaturan, yang ditetapkan secara global untuk setiap indeks. Pengaturan berikut terutama terkait dengan penggunaan memori -
Pemutus arus
Ini digunakan untuk mencegah operasi menyebabkan OutOfMemroyError. Pengaturan ini terutama membatasi ukuran heap JVM. Misalnya, pengaturan indices.breaker.total.limit, yang defaultnya adalah 70% dari heap JVM.
Cache Data Lapangan
Ini digunakan terutama saat menggabungkan di bidang. Direkomendasikan untuk memiliki cukup memori untuk mengalokasikannya. Jumlah memori yang digunakan untuk cache data lapangan dapat dikontrol menggunakan pengaturan indices.fielddata.cache.size.
Cache Kueri Node
Memori ini digunakan untuk menyimpan hasil query. Cache ini menggunakan kebijakan pengusiran Least recent used (LRU). Indices.queries.cahce.size mengatur ukuran memori dari cache ini.
Penyangga Pengindeksan
Buffer ini menyimpan dokumen yang baru dibuat dalam indeks dan menghapusnya ketika buffer sudah penuh. Pengaturan seperti indices.memory.index_buffer_size mengontrol jumlah heap yang dialokasikan untuk buffer ini.
Cache Permintaan Shard
Cache ini digunakan untuk menyimpan data pencarian lokal untuk setiap pecahan. Cache dapat diaktifkan selama pembuatan indeks atau dapat dinonaktifkan dengan mengirimkan parameter URL.
Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true
Pemulihan Indeks
Ini mengontrol sumber daya selama proses pemulihan. Berikut ini adalah pengaturannya -
Pengaturan | Nilai default |
---|---|
indices.recovery.concurrent_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | benar |
indices.recovery.max_bytes_per_sec | 40mb |
Interval TTL
Interval Time to Live (TTL) menentukan waktu dokumen, setelah itu dokumen dihapus. Berikut ini adalah pengaturan dinamis untuk mengontrol proses ini -
Pengaturan | Nilai default |
---|---|
indices.ttl.interval | 60-an |
indices.ttl.bulk_size | 1000 |
Node
Setiap node memiliki pilihan untuk menjadi node data atau tidak. Anda dapat mengubah properti ini dengan mengubahnode.datapengaturan. Menetapkan nilai sebagaifalse mendefinisikan bahwa node bukanlah node data.