Introducción a ElasticSearch
¿Qué es ElasticSearch?
- ElasticSearch es un motor de búsqueda de código abierto basado en Apache Lucene
- Escrito en Java, proporciona una API RESTFul sencilla y fácil de usar
- Escalabilidad sencilla para soportar procesamiento de datos estructurados o no estructurados a nivel de petabytes
Escenarios de aplicación:
- Motor masivo de análisis de datos
- Motor de búsqueda en el sitio
- Como almacén de datos
Dirección del documento:El inicio de sesión del hipervínculo es visible.
Entorno de despliegue:
CentOS 7 x64 bits, Elasticsearch versión 6.5.2, JDK 1.8.0.191
1: Instalar JDK 1.8.0
ElasticSearch es sensible a la versión del JRE, y una versión incorrecta hará que ElasticSearch no funcione.
2: Descargar y ejecutar ElasticSearch 6.5.2
Descarga la página de dirección:El inicio de sesión del hipervínculo es visible.
[root@VM_0_9_centos elasticsearch-6.5.2]# ./bin/elasticsearch Advertencia de VM OpenJDK de 64 bits: Si se espera que el número de procesadores aumente desde uno, entonces deberías configurar adecuadamente el número de hilos GC paralelos usando -XX: ParallelGCThreads=N [2018-12-11T15:24:27,847] [ADVERTENCIA] [o.e.b.ElasticsearchUncaughtExceptionHandler] [desconocido] excepción no capturada en el hilo [principal]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root en org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.2.jar:6.5.2] en org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] Causado por: java.lang.RuntimeException: no puede ejecutar elasticsearch como raíz en org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.2.jar:6.5.2] en org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.2.jar:6.5.2] ... 6 más
Elasticsearch requiere que no puedas ejecutar con superuser root, así que podemos crear una cuenta de forma casual, y tengo que usar el usuario como es
Si no hay error, se ejecuta correctamente
Abre un terminal nuevo y accede a él con curl
En caso de asegurarse de que el puerto del servidor (9200) está activado, se inicia elasticsearch (ps -ef | grep elasticsearch) pueden accederse en el navegador
[root@VM_0_9_centos local]# curl 'http://localhost:9200/?pretty'
{ "nombre" : "iUSRV4T", "cluster_name" : "elasticsearch", "cluster_uuid" : "WCbka65VTd2TnM8gQvztqg", "version" : { "número": "6.5.2", "build_flavor" : "por defecto", "build_type" : "alquitrán", "build_hash" : "9434bed", "build_date" : "2018-11-29T23:58:20.891072Z", "build_snapshot" : falso, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "eslogan": "Ya sabes, para buscar"
}
3: Acceder a Elasticsearch por Internet
Editar el archivo de configuración elasticsearch
Encuentra network.host: una línea, elimina el signo # y cámbialo a:
(network.host: [_local_, 172.30.6.1] 172.30.6.1 es la dirección IP especificada, que puede ser múltiples direcciones IP. No probado)
Reinicia Elasticsearch y entonces podrás acceder a la interfaz http://ip:9200 en Internet.
Posibles errores:
Error número uno
Las áreas máximas de memoria virtual vm.max_map_count [65530] son demasiado bajas, aumentan al menos a [262144] El valor de max_map_count se refiere a las áreas máximas de mapa de memoria disponibles para un proceso, que se utiliza al llamar a malloc y se genera mediante mmap/mprotect.
Solución alternativa: Aumentar el tamaño de vm.max_map_count:
Error dos
Los descriptores máximos de archivo [4096] para ElasticSearch Process son demasiado bajos, aumentan a al menos [65536] Solución
Tras la modificación, vuelve a iniciar sesión con el usuario de ES y utiliza el siguiente comando para comprobar si la modificación ha tenido éxito
Error 3
Advertencia de VM de servidor Java HotSpot(TM) de 64 bits: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) fallado; error='No se puede asignar memoria' (errno=12) Solución
endijo AliPosibles problemas en la
los filtros de llamadas al sistema no se instalaron; Revisa los registros y corrige tu configuración o desactiva los filtros de llamadas al sistema bajo tu propia responsabilidad Solución: Añadir el siguiente comando a la configuración elasticsearch
|