Puntos clave: ElasticSearch se integra perfectamente con Apache Spark, permitiendo análisis de datos JSON. Las organizaciones utilizan ElasticSearch para el procesamiento de registros, mejorando las operaciones y la ciberseguridad. Con el soporte nativo de ElasticSearch de Spark desde la versión 2.1, los usuarios pueden aprovechar conectores para análisis avanzados de datos, yendo más allá de las consultas básicas de Lucene.
- ElasticSearch se está utilizando ampliamente para el procesamiento de logs.
- Apache Spark proporciona soporte nativo para ElasticSearch desde la versión 2.1.
ElasticSearch están una base de datos JSON popular entre los sistemas de procesamiento de logs. Por ejemplo, las organizaciones suelen utiliza ElasticSearch con logstash o filebeat para enviar registros del servidor web, eventos de Windows, syslogs de Linux y otros datos allí. Luego utiliza la interfaz web Kibana para consultar eventos de log. Todo esto están importante para la ciberseguridad, operaciones, etc. Desde Spark 2.1, Spark ha incluido soporte nativo para ElasticSearch, al que llaman Elasticsearch Hadoop. Eso significa que te puede utiliza Apache Pig y Hive para trabajar con documentos JSON ElasticSearch. ElasticSearch Spark están un conector que existía antes de la versión 2.1 y que aún están soportado. Aquí mostramos cómo utiliza ElasticSearch Spark. Estos conectores permiten te ejecutar análisis sobre datos de ElasticSearch. ElasticSearch por sí solo solo soporta Lucene Consultes, es decir, consultas en lenguaje natural. Así que te podría escribir modelos predictivos y de clasificación para marcar eventos de ciberseguridad o realizar otros análisis, algo que ES no hace por sí solo.
Instalación ElasticSearch Spark
Primero te necesito ElasticSearch. Descarga una versión preconstruida en lugar de usar la imagen de Docker. La versión descargada tiene la autenticación desactivada, lo que nos ahorra algunos pasos.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
Y luego tú necesitas Apache Spark. Descárgalo desde aquí y descomprimilo. Ninguno de los dos programas requiere configuración. Y no es necesario Comienza Spark para utilizarlo. Tampoco te hace falta Comienza Hadoop. Solo tienes que Comienza ElasticSearch. Ejecuta este comando como usuario no root para hacerlo:
/usr/share/elasticsearch/elasticsearch-5.5.2/bin/elasticsearch
Luego descarga el archivo jar de ElasticSearch:
wget http://central.maven.org/maven2/org/elasticsearch/elasticsearch-spark-20_2.11/5.5.2/elasticsearch-spark-20_2.11-5.5.2.jar
Ahora Comienza la shell interactiva de Spark, proporcionando el archivo jar como opción de línea de comandos:
spark-shell --jars /home/walker/Documents/jars/elasticsearch-spark-20_2.11-5.5.2.jar
Ahora podemos tomar el programa de ejemplo directamente del sitio web de ElasticSearch y Crea datos en ElasticSearch. Copia este texto en el spark-shell.
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.elasticsearch.spark._
val sc = new SparkContext(conf)
conf.set("es.index.auto.create", "true")
val numbers = Map("one" -> 1, "two" -> 2, "three" -> 3)
val airports = Map("arrival" -> "Otopeni", "SFO" -> "San Fran")
sc.makeRDD(Seq(numbers, airports)).saveToEs("spark/docs")
Todo esto solo escribió un RDD en ElasticSearch. Ahora podemos escribir unas líneas simples de Scala para leer esos datos de ES y Haz que sea un RDD de nuevo.
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.elasticsearch.spark._
import org.apache.spark.SparkConf
val RDD = sc.esRDD("spark/docs")
RDD.first()
Eso devolverá las líneas de abajo. Ten en cuenta que el RDD están un mapa. También podría ser una clase de caso Scala o JavaBean. Así que esos son el tipo de objetos te pueden almacena allí, lo cual tiene sentido ya que el formato ES están JSON.
RDD: org.apache.spark.rdd.RDD[(String, scala.collection.Map[String,AnyRef])] = ScalaEsRDD[0] at RDD at AbstractEsRDD.scala:37
res4: (String, scala.collection.Map[String,AnyRef]) = (AV5b8VamL-9DBQqpL3kV,Map(arrival -> Otopeni, SFO -> San Fran))
Ahora podemos consultar el índice ES y Ve que el índice de chispa está ahí:
curl 'localhost:9200/_cat/indices?v'
Respuestas:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open spark n9aTT2HcTJ-RiRZ5Ct1Wiw 5 1 2 0 7.9kb 7.9kb
Guía de ElasticSearch
- Tutorial de ElasticSearch para principiantes: Conceptos básicos de ElasticSearch
- Uso de Apache Hive con ElasticSearch
- Uso de ElasticSearch con Apache Spark
- Hoja de trucos de comandos de Curl ElasticSearch
- Ejemplo y explicación de actualización y explicación de Spark ElasticSearch Hadoop
- Cómo escribir datos de Apache Spark en ElasticSearch usando Python
- Sintaxis de búsqueda ElasticSearch y búsquedas booleanas y de agregación
- Consultas anidadas de ElasticSearch: Cómo buscar documentos incrustados
- ElasticSearch se une: Has_Child, consulta Has_parent
- Cómo configurar un clúster Elastic versión 7
- Cómo configurar Filebeat para nginx y ElasticSearch
- Uso de Beats y Logstash para enviar registros a ElasticSearch
- Cómo cargar un archivo CSV en ElasticSearch con Logstash
- Explicación de las agregaciones de ElasticSearch
- ¿Qué es el ELK Stack?
- Logstash 101: Uso de Logstash en una Canalización de Procesamiento de Datos
- Usar Kibana para ejecutar consultas en ElasticSearch usando el lenguaje de consultas Lucene y Kibana
- Aprendizaje automático ElasticSearch
- Cómo instalar Elastic Enterprise Search
- Cómo utilizar Elastic Enterprise Search con GitHub
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.