Pengantar ElasticSearch
Apa itu ElasticSearch:
- ElasticSearch adalah mesin pencari sumber terbuka yang dibangun di atas Apache Lucene
- Ditulis dalam Java, ini menyediakan API RESTFul yang sederhana dan mudah digunakan
- Penskalaan mudah untuk mendukung pemrosesan data terstruktur atau tidak terstruktur tingkat petabyte
Skenario Aplikasi:
- Mesin analisis data besar-besaran
- Mesin pencari di tempat
- Sebagai gudang data
Alamat dokumen:Login hyperlink terlihat.
Lingkungan Penyebaran:
CentOS 7 x64-bit, Elasticsearch versi 6.5.2, JDK 1.8.0.191
1: Instal JDK 1.8.0
ElasticSearch sensitif terhadap versi JRE, dan versi yang salah akan menyebabkan ElasticSearch tidak berfungsi.
2: Unduh dan jalankan ElasticSearch 6.5.2
Unduh halaman alamat:Login hyperlink terlihat.
[root@VM_0_9_centos elasticsearch-6.5.2]# ./bin/elasticsearch Peringatan VM Server 64-Bit OpenJDK: Jika jumlah prosesor diperkirakan akan meningkat dari satu, maka Anda harus mengonfigurasi jumlah utas GC paralel dengan tepat menggunakan -XX: ParalelGCThreads=N [2018-12-11T15:24:27,847] [MEMPERINGATKAN] [o.e.b.ElasticsearchUncaughtExceptionHandler] [tidak diketahui] pengecualian yang tidak tertangkap di utas [utama]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root di org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.2.jar:6.5.2] di org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] Disebabkan oleh: java.lang.RuntimeException: tidak dapat menjalankan elasticsearch sebagai root di org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.2.jar:6.5.2] di org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.2.jar:6.5.2] ... 6 lagi
Elasticsearch mengharuskan Anda tidak dapat menjalankan dengan root superuser, sehingga kita dapat membuat akun dengan santai, dan saya harus menggunakan pengguna sebagai es
Jika tidak ada kesalahan, itu berjalan dengan sukses
Buka terminal baru dan akses dengan curl
Dalam hal memastikan bahwa port server (9200) aktif, elasticsearch dimulai (ps -ef | grep elasticsearch) dapat diakses di browser
[root@VM_0_9_centos lokal]# ikal 'http://localhost:9200/?pretty'
{ "nama" : "iUSRV4T", "cluster_name" : "elasticsearch", "cluster_uuid" : "WCbka65VTd2TnM8gQvztqg", "versi" : { "angka" : "6.5.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "9434bed", "build_date" : "2018-11-29T23:58:20.891072Z", "build_snapshot" : salah, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "Anda tahu, untuk pencarian"
}
3: Akses Elasticsearch melalui Internet
Mengedit file konfigurasi elasticsearch
Temukan network.host: baris, hapus tanda #, dan ubah menjadi:
(network.host: [_local_, 172.30.6.1] 172.30.6.1 adalah alamat IP yang ditentukan, yang dapat berupa beberapa alamat IP. Tidak diuji)
Mulai ulang Elasticsearch, lalu Anda dapat mengakses antarmuka http://ip:9200 di Internet.
Kemungkinan kesalahan:
Kesalahan satu
Area memori virtual maksimum vm.max_map_count [65530] terlalu rendah, meningkat menjadi setidaknya [262144] Nilai max_map_count mengacu pada area peta memori maksimum yang tersedia untuk suatu proses, yang digunakan saat memanggil malloc dan dihasilkan oleh mmap/mprotect.
Solusi: Tingkatkan ukuran vm.max_map_count:
Kesalahan dua
Deskriptor file maks [4096] untuk proses Elasticsearch terlalu rendah, meningkat menjadi setidaknya [65536] Larutan
Setelah modifikasi, masuk ke pengguna ES lagi dan gunakan perintah berikut untuk memeriksa apakah modifikasi berhasil
Kesalahan 3
Peringatan VM Server 64-Bit Java HotSpot(TM): INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) gagal; error='Tidak dapat mengalokasikan memori' (errno=12) Larutan
diKata AliKemungkinan masalah pada
filter panggilan sistem gagal diinstal; Periksa log dan perbaiki konfigurasi Anda atau nonaktifkan filter panggilan sistem dengan risiko Anda sendiri Solusi: Tambahkan perintah berikut ke konfigurasi elasticsearch
|