Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algunas de las evoluciones que supone Spark frente a su predecesor son el procesamiento en
memoria que disminuye las operaciones de lectura/escritura, la posibilidad de análisis interactivo
con SQL (similar a Hive en cierto modo) y la facilidad para interactuar con múltiples sistemas de
almacenamiento persistente.
Características principales
Sus principales características son las siguientes:
Componentes
Los componentes principales que conforman el framework son estos:
Ejemplos de uso
ATP: utiliza Apache Spark para el desarrollo y ejecución de modelos predictivos y
algoritmos de aprendizaje automático para mejorar la relevancia de las campañas de
marketing programático.
PanTera: herramienta para explorar grandes conjuntos de datos. Emplea Spark para crear
diagramas de dispersión geográfica de miles a millones de puntos.
ElasticSearch
un gestor de datos y motor de búsqueda basado en Lucene. Se trata de un sistema
distribuido que permite trabajar con un gran volumen de datos de cualquier tipo, con una
interfaz web RESTful de búsqueda así como clientes para distintos lenguajes de
programación, y un sistema de analítica que permite realizar consultas en tiempo real.
Elasticsearch está publicado como open source (código abierto) bajo licencia Apache y
desarrollado en Java. Se trata de una tecnología que ayuda a optimizar la arquitectura de
datos de nuestro negocio.
ElasticSearch utiliza un lenguaje denominado DSL para realizar consultas. Una consulta
examina uno o varios valores objetivos y escoge uno de los elementos en los resultados de
acuerdo con la concordancia del enfoque de la consulta.
Los operadores de consulta permiten optimizar consultas simples o complejas que
regularmente arrojan resultados en milisegundos. El esquema de diseño de ElasticSearch
es mucho más simple y ágil en comparación con una base de datos relacional
convencional debido a que no tiene las restricciones de esquema, tablas, columnas y filas.
Tipos de consultas
Una consulta comienza con la palabra "query" seguida de unas condiciones y filtros
dentro, en la forma de un objeto JSON. Existen distintos tipos de consultas que podemos
identificar, por ejemplo:
La consulta más básica que se puede hacer. Devuelve todos los objetos que se encuentren
indexados:
"query":{
"match_all":{}
Match query
Este tipo de consulta se utiliza para realizar una búsqueda donde se busca igualar
determinados valores de un término o una frase. Entonces, si buscamos, por ejemplo
dentro de nuestra base de datos, todos los objetos cuyo atributo color es verde, tomaría
la siguiente forma:
"query":{
"match" : {
"color":"verde"
"query":{
"multi_match" : {
"query": "montevideo",
Term queries
Este tipo de consultas se utilizan cuando se trabaja con datos como números o fechas,
para buscar el valor de un término concreto:
"query":{
"term":{"animal":"perro"}
Range query
Otro tipo de consultas son aquellas que buscan por el rango de determinado atributo. Se
utilizan distintos operadores ("gte": mayor ó igual a determinado valor, "gt": mayor a
determinado valor, "lte": menor ó igual , "lt": menor):
"query":{
"range":{
"rating":{
"gte":4
Ventajas
Acceso en tiempo real. Esta tecnología nos permite acceder de forma instantánea
a los datos.
Búsqueda de texto completo. Usar Elasticsearch hace que implementen una gran
cantidad de funciones, tales como la división personalizada de texto en palabras,
derivación personalizada, búsqueda personalizada, etc.
Uso de facetas. Una búsqueda facetada es más sólida que una búsqueda de texto
típica, lo que permite a los usuarios aplicar una cantidad de filtros a la información
e incluso tener un sistema de clasificación basado en los datos. Esto permite una
mejor organización de los resultados de búsqueda y permite a los usuarios
determinar mejor qué información necesitan examinar.
Escalabilidad horizontal y registro de nodos. Elasticsearch permite escalar
horizontalmente, por lo que, gracias a su diseño, permite extender los recursos y
equilibrar la carga entre los nodos de un cluster. Además, registra cualquier
cambio realizado en registros de transacciones en múltiples nodos en el clúster
para minimizar la posibilidad de pérdida de datos. Por otro lado, estos cluster
pueden detectar aquellos nodos que fallan y reorganizarlos para que los datos
siempre sean accesibles.
Desventajas
Sólo soporta como tipos de respuesta JSON, lo que lo limita al no soportar otros
lenguajes, como CSV ó XML.
Algunas situaciones pueden generar casos de split-brain
Apache Storm
Apache Storm es un sistema que sirve para recuperar streams de datos en tiempo real
desde múltiples fuentes de manera distribuida, tolerante a fallos y en alta disponibilidad.
Storm está principalmente pensado para trabajar con datos que deben ser analizados en
tiempo real, por ejemplo datos de sensores que se emiten con una alta frecuencia o datos
que provengan de las redes sociales donde a veces es importante saber qué se está
compartiendo en este momento.
Se compone de dos partes principalmente. La primera es la que se denomina Spout y es la
encargada de recoger el flujo de datos de entrada. La segunda se denomina Bolt y es la
encargada del procesado o transformación de los datos.
En la documentación oficial representan los Spouts con grifos simulando la entrada de un
stream de datos al sistema y a los Bolts con un rayo que es donde se realizan las acciones
pertinentes con los datos de entrada.
Como Funciona Apache Storm
Nodo Nimbus (nodo principal): carga los cálculos para la ejecución, distribuye el
código en el clúster, lanza trabajadores en todo el clúster y monitorea el cálculo y
reasigna trabajadores según sea necesario
Topología
Una topología en Storm es similar a un grafo. Cada nodo se encarga de procesar una
determinada información y le pasa el testigo al siguiente nodo. Esto se configura
previamente en la topología. La topología se compone de Spouts y Bolts.
Spout
El componente Spout de Storm es el encargado de la ingesta de los datos en el sistema,
por ejemplo si tenemos que leer un fichero de texto y contar las palabras, el componente
que recibiría los streams del fichero sería el Spout.
Bolt
El Bolt es encargado de consumir las tuplas que emite el Spout, las procesa en función de
lo que dicte el algoritmo que programamos sobre los streams de entrada y puede
emitirlos a otro Bolt. Es recomendable que cada Bolt realice una única tarea. Si
necesitamos realizar varios cálculos o transformaciones sobre los datos que le llegan al
Bolt, lo mejor es que se dividan en distintos Bolt para mejorar la eficiencia y la
escalabilidad.
Ventajas
Las ventajas que presenta Apache Storm son:
Confiable: garantiza que cada unidad de datos se procesará al menos una vez. Los
mensajes solo se reproducen cuando hay fallas.
Fácil de operar: las configuraciones estándar son las idóneas para la producción
incluso desde el primer día.
R STUDIO
Para hablar de R STUDIO primero debemos empezar por R.
R es un software que fue diseñado para hacer análisis estadísticos y gráficas, y es software
libre. Así, se puede descargar y utilizar sin problemas
Otra ventaja es que es más o menos sencillo compartir código. Por lo tanto, científicos en
cualquier parte del mundo pueden contribuir con sus investigaciones.
La consola de R
En R, se utiliza una línea de comandos para comunicarnos con el programa.
En la consola, podemos utilizar R como calculadora y hacer operaciones como sumar,
restar o dividir. Además, R incluye funciones matemáticas como logaritmos,
trigonométricas. También, podemos mostrar texto en pantalla como el tradicional “hola
mundo” de programación.
La interfaz de RStudio
Ahora, por un lado, R es el lenguaje de programación, como el que hace las cuentas. Por
otro lado, R Studio es un IDE, eso significa que RStudio es un programa para manejar R y
utilizarlo de manera más cómoda en algunos aspectos.
Hay muchos motivos por los que utilizar R, de los que destacan los siguientes:
Es gratuito.
Tiene capacidades avanzadas de gráficos, por lo que nos permite realizar gráficos y
dashboards de forma que podamos presentar los resultados de forma vistosa.
Permite ejecutar código desde script o partes de código con sólo marcarlo.
Muestra el workspace
Muestra el historial
Partes de R STUDIO
Menú Superior
Ventana de Consola
En esta ventana se ejecuta todo en R y también se puede ingresar directamente ordenes
de R; se caracteriza por tener una entrada con el signo > y el prompt que se encuentra
parpadeando.
Ventana de objetos e historial de R
En la pestaña “Environment”, se presenta todos los objetos que vayamos creando cuando
utilizamos RStudio, la pestaña “History”, se almacena todos los comandos que se han ido
ejecutando y “Connections” si es que se ha ulitizado RStudio conectado a una base de
datos.
BSG Institute. (s. f.). Apache Spark para Procesamiento en Big Data.
https://bsginstitute.com/bs-campus/blog/Apache-Spark-para-Procesamiento-en-
Big-Data-124
https://expertoenbigdata.com/schema/person/experto-en-big-data/#author. (2018, 6
marzo). ¿Qué es Apache Storm? Conoce todos los detalles. Experto en Big Data.
https://expertoenbigdata.com/apache-storm/
I. (2018, 3 octubre). Usar Elasticsearch, ¿qué ventajas ofrece esta tecnología? ITELLIGENT
Asesores. https://eduasesores.com/r-y-rstudio/primeros-pasos-en-rstudio/
Mesa, A. R. (2018, 2 julio). Qué es Apache Spark. OpenWebinars.net.
https://openwebinars.net/blog/que-es-apache-spark/
https://gonzalezgouveia.com/que-es-r-y-rstudio/
https://www.adictosaltrabajo.com/2014/09/22/introduccion-storm/
Unir, V. (2020, 7 mayo). Apache Spark en big data: qué es y para que se emplea. UNIR.
https://www.unir.net/ingenieria/revista/apache-spark-big-data/
https://openwebinars.net/blog/que-es-r-y-por-que-utilizarlo/