SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Elasticsearch 101
Training course (Part 1)
Training contents
- Qué es Elasticsearch?
- Introducción
- Casos de uso típicos
- Familia de Elastic: Kibana, Logstash, Beats, APM...
- Qué hay que saber sobre Elasticsearch
- Replicas, Shards y nodos
- Trucos de configuración
Qué es Elasticsearch?
- El objetivo de ElasticSearch era tener un buscador
escalable.
- Funciona sobre Lucene.
- Creado en 2010 para competir con Apache Solr.
- Arquitectura distribuida de saque en su diseño
inicial
- Fácil de usar desde cualquier lenguaje de
programación vía REST APIs
Typical use-cases
- Datos (relativamente) estáticos: un dataset grande
(o pequeño) que puede crecer o cambiar lentamente
como un catálogo de productos.
- Series temporales: datos sobre eventos asociados a
un momento particular en el tiempo que suelen crecer
muy rápido tales como ficheros de log o métricas de
performance.
Elastic family
- Elasticsearch es un buscador diseñado para ser
escalable y fácil de usar en cualquier lenguaje.
- Logstash & Beats se usan para transformar datos de
los logs y guardarlos en Elasticsearch.
- Kibana es la plataforma de visualización de analíticas
generadas desde Elasticsearch.
- APM es el nuevo producto estrella de Elastic diseñado
para el caso de uso de performance monitoring.
Primary shards and replica shards
Elastic node types
- Master node: coordina la topología de los datos.
Controla dónde están guardados los datos.
- Data node: Guarda los datos. Tanto réplicas como
shards.
- Otros: Ingest node, machine learning node,
transform node, etc...
Configuration tips: Cuántos shards?
- Heavy indexing: + shards
- Heavy search traffic: + réplicas
- Large dataset: Ajusta el número de shards para que
cada uno ocupe de 10 a 40 GB
- Small dataset: Deja un único shard
Configuration tips: Health status
- VERDE: Todos los shards - primarios y secundarios - están asignados
correctamente.
- AMARILLO: Los shards primarios están bien, pero alguna réplica
secundaria no está asignada.
- ROJO: Un shard primario no está asignado en el clúster
Configuration tips
- Los shards deben tener un tamaño de entre 10GB -
40GB
- Hay que escoger un número divisible de shards para
usar la shrink y la rollover api.
- Si tu clúster va a crecer, considera tener másters
dedicados. Mínimo 3 para evitar split-brain.
- Usar dynamic=strict para que no se puedan auto
añadir campos en el índice.
Configuration tips
- Setear la ram del data-nodo a la mitad -1 i.e. para 64GB
de RAM, pondriamos 31GB para el proceso Java
- Idealmente, data-nodes con 64GB de RAM y
master-nodes con 16GB de RAM
- No usar nunca kill -9 {process_id}, usar kill
{process_id}. Los buffers no se cierran bien.
- Usar Rally para tests de carga.

Más contenido relacionado

Similar a Elasticsearch 101 (Part 1)

Taller Redis
Taller RedisTaller Redis
Taller Redis
betabeers
 
Tres gestores de bases de datos
Tres gestores de bases de datosTres gestores de bases de datos
Tres gestores de bases de datos
satakin_armando7
 

Similar a Elasticsearch 101 (Part 1) (20)

Bases de datos
Bases de datosBases de datos
Bases de datos
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
 
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión IMonta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión I
 
MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Reinvención de SAP en AWS: Mejorar y simplificar las operaciones SAP en AWS -...
Reinvención de SAP en AWS: Mejorar y simplificar las operaciones SAP en AWS -...Reinvención de SAP en AWS: Mejorar y simplificar las operaciones SAP en AWS -...
Reinvención de SAP en AWS: Mejorar y simplificar las operaciones SAP en AWS -...
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
Oracle
OracleOracle
Oracle
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Primeros pasos con elasticsearch
Primeros pasos con elasticsearchPrimeros pasos con elasticsearch
Primeros pasos con elasticsearch
 
Big Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data LakeBig Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data Lake
 
Servicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWSServicios de bases de datos administradas en AWS
Servicios de bases de datos administradas en AWS
 
Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)
Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)
Almacenamiento de objetos en Ceph y su API S3 (LibreCon 2017)
 
Tres gestores de bases de datos
Tres gestores de bases de datosTres gestores de bases de datos
Tres gestores de bases de datos
 

Elasticsearch 101 (Part 1)

  • 2. Training contents - Qué es Elasticsearch? - Introducción - Casos de uso típicos - Familia de Elastic: Kibana, Logstash, Beats, APM... - Qué hay que saber sobre Elasticsearch - Replicas, Shards y nodos - Trucos de configuración
  • 3. Qué es Elasticsearch? - El objetivo de ElasticSearch era tener un buscador escalable. - Funciona sobre Lucene. - Creado en 2010 para competir con Apache Solr. - Arquitectura distribuida de saque en su diseño inicial - Fácil de usar desde cualquier lenguaje de programación vía REST APIs
  • 4. Typical use-cases - Datos (relativamente) estáticos: un dataset grande (o pequeño) que puede crecer o cambiar lentamente como un catálogo de productos. - Series temporales: datos sobre eventos asociados a un momento particular en el tiempo que suelen crecer muy rápido tales como ficheros de log o métricas de performance.
  • 5. Elastic family - Elasticsearch es un buscador diseñado para ser escalable y fácil de usar en cualquier lenguaje. - Logstash & Beats se usan para transformar datos de los logs y guardarlos en Elasticsearch. - Kibana es la plataforma de visualización de analíticas generadas desde Elasticsearch. - APM es el nuevo producto estrella de Elastic diseñado para el caso de uso de performance monitoring.
  • 6. Primary shards and replica shards
  • 7. Elastic node types - Master node: coordina la topología de los datos. Controla dónde están guardados los datos. - Data node: Guarda los datos. Tanto réplicas como shards. - Otros: Ingest node, machine learning node, transform node, etc...
  • 8. Configuration tips: Cuántos shards? - Heavy indexing: + shards - Heavy search traffic: + réplicas - Large dataset: Ajusta el número de shards para que cada uno ocupe de 10 a 40 GB - Small dataset: Deja un único shard
  • 9. Configuration tips: Health status - VERDE: Todos los shards - primarios y secundarios - están asignados correctamente. - AMARILLO: Los shards primarios están bien, pero alguna réplica secundaria no está asignada. - ROJO: Un shard primario no está asignado en el clúster
  • 10. Configuration tips - Los shards deben tener un tamaño de entre 10GB - 40GB - Hay que escoger un número divisible de shards para usar la shrink y la rollover api. - Si tu clúster va a crecer, considera tener másters dedicados. Mínimo 3 para evitar split-brain. - Usar dynamic=strict para que no se puedan auto añadir campos en el índice.
  • 11. Configuration tips - Setear la ram del data-nodo a la mitad -1 i.e. para 64GB de RAM, pondriamos 31GB para el proceso Java - Idealmente, data-nodes con 64GB de RAM y master-nodes con 16GB de RAM - No usar nunca kill -9 {process_id}, usar kill {process_id}. Los buffers no se cierran bien. - Usar Rally para tests de carga.