Podcast
Questions and Answers
¿Cuál es el objetivo principal del estudio de las tecnologías Big Data según el texto?
¿Cuál es el objetivo principal del estudio de las tecnologías Big Data según el texto?
- Entender cómo abordan las necesidades de procesamiento de datos actuales. (correct)
- Aprender a programar en Java.
- Crear nuevas bases de datos relacionales.
- Dominar el uso de sistemas operativos Linux.
En el contexto de Big Data, ¿qué porcentaje de los datos generados se considera no estructurado?
En el contexto de Big Data, ¿qué porcentaje de los datos generados se considera no estructurado?
- 80% (correct)
- 50%
- 20%
- 90%
¿Cuál de las siguientes NO es una fuente principal de datos en la era del Big Data?
¿Cuál de las siguientes NO es una fuente principal de datos en la era del Big Data?
- Interacción entre humanos a través de sistemas informáticos.
- Interacción humano-máquina en plataformas digitales.
- Interacción entre máquinas mediante sistemas de monitoreo.
- Interacción humano-máquina en dispositivos analógicos. (correct)
¿Cuál de las siguientes opciones describe mejor el objetivo de la transformación digital según el texto?
¿Cuál de las siguientes opciones describe mejor el objetivo de la transformación digital según el texto?
Según el texto, ¿cuál es una característica esencial para que un proyecto se considere Big Data?
Según el texto, ¿cuál es una característica esencial para que un proyecto se considere Big Data?
Según lo expuesto, ¿qué facilitan las tecnologías Big Data?
Según lo expuesto, ¿qué facilitan las tecnologías Big Data?
¿Cuál fue la principal contribución de Google al origen de las tecnologías Big Data?
¿Cuál fue la principal contribución de Google al origen de las tecnologías Big Data?
¿Qué problema específico abordó el Google File System (GFS)?
¿Qué problema específico abordó el Google File System (GFS)?
¿Cuál fue la principal ventaja de MapReduce en su momento?
¿Cuál fue la principal ventaja de MapReduce en su momento?
¿Quién desarrolló Apache Spark y cuál fue su motivación principal?
¿Quién desarrolló Apache Spark y cuál fue su motivación principal?
¿Qué característica principal permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?
¿Qué característica principal permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?
¿Cuál de las siguientes herramientas NO forma parte del ecosistema Hadoop?
¿Cuál de las siguientes herramientas NO forma parte del ecosistema Hadoop?
En el ecosistema Hadoop, ¿cuál es la función principal de Zookeeper?
En el ecosistema Hadoop, ¿cuál es la función principal de Zookeeper?
¿Qué herramienta del ecosistema Hadoop permite realizar consultas SQL en datos almacenados en HDFS?
¿Qué herramienta del ecosistema Hadoop permite realizar consultas SQL en datos almacenados en HDFS?
¿Cuál de estas herramientas ha reemplazado a MapReduce debido a su mayor velocidad y eficiencia?
¿Cuál de estas herramientas ha reemplazado a MapReduce debido a su mayor velocidad y eficiencia?
¿Qué función cumplen las distribuciones de Hadoop?
¿Qué función cumplen las distribuciones de Hadoop?
Entre las distribuciones de Hadoop mencionadas, ¿cuál es la única que es 100% open source y compatible con Windows?
Entre las distribuciones de Hadoop mencionadas, ¿cuál es la única que es 100% open source y compatible con Windows?
¿Cuál es el tamaño de bloque predeterminado en HDFS?
¿Cuál es el tamaño de bloque predeterminado en HDFS?
En HDFS, ¿cuál es el factor de replicación predeterminado para asegurar la alta disponibilidad de los datos?
En HDFS, ¿cuál es el factor de replicación predeterminado para asegurar la alta disponibilidad de los datos?
En la arquitectura de HDFS, ¿cuál es la función del NameNode?
En la arquitectura de HDFS, ¿cuál es la función del NameNode?
¿Cómo se logra la alta disponibilidad del NameNode en HDFS?
¿Cómo se logra la alta disponibilidad del NameNode en HDFS?
Durante el proceso de escritura en HDFS, ¿qué rol desempeña el NameNode?
Durante el proceso de escritura en HDFS, ¿qué rol desempeña el NameNode?
Cuál de los siguientes comandos de HDFS se utiliza para ver el contenido de un directorio?
Cuál de los siguientes comandos de HDFS se utiliza para ver el contenido de un directorio?
Si necesitas copiar un archivo desde tu sistema de archivos local a HDFS, ¿qué comando utilizarías?
Si necesitas copiar un archivo desde tu sistema de archivos local a HDFS, ¿qué comando utilizarías?
¿Cuál es el propósito del comando hdfs dfs –tail /ruta/hdfs/fichero.txt
?
¿Cuál es el propósito del comando hdfs dfs –tail /ruta/hdfs/fichero.txt
?
¿Qué comando se utiliza para eliminar un directorio y todo su contenido en HDFS?
¿Qué comando se utiliza para eliminar un directorio y todo su contenido en HDFS?
En MapReduce, ¿cuál es la función del Mapper?
En MapReduce, ¿cuál es la función del Mapper?
En MapReduce, ¿qué hace el Reducer?
En MapReduce, ¿qué hace el Reducer?
¿Cuál es una desventaja significativa de MapReduce?
¿Cuál es una desventaja significativa de MapReduce?
¿Cuál de las siguientes opciones describe mejor a Apache Spark?
¿Cuál de las siguientes opciones describe mejor a Apache Spark?
En el contexto de Apache Spark, ¿cuál es la función de Spark Core?
En el contexto de Apache Spark, ¿cuál es la función de Spark Core?
RDD en Apache Spark, ¿qué significan las siglas?
RDD en Apache Spark, ¿qué significan las siglas?
¿Cuál es una característica clave de los RDD en Spark?
¿Cuál es una característica clave de los RDD en Spark?
¿Qué diferencia principal existe entre una transformación y una acción en Spark?
¿Qué diferencia principal existe entre una transformación y una acción en Spark?
En Spark, ¿qué representa un 'job'?
En Spark, ¿qué representa un 'job'?
En Spark, ¿qué son las 'tasks'?
En Spark, ¿qué son las 'tasks'?
Al usar toPandas
en Spark, ¿qué limitación principal se debe considerar?
Al usar toPandas
en Spark, ¿qué limitación principal se debe considerar?
¿Cuál es la función principal de los DataFrames en Spark?
¿Cuál es la función principal de los DataFrames en Spark?
Spark SQL permite realizar consultas en lenguaje SQL sobre:
Spark SQL permite realizar consultas en lenguaje SQL sobre:
En Spark SQL, ¿qué son las vistas?
En Spark SQL, ¿qué son las vistas?
¿Cuál es la diferencia entre las 'tablas gestionadas' y las 'tablas externas' en Hive?
¿Cuál es la diferencia entre las 'tablas gestionadas' y las 'tablas externas' en Hive?
Según el texto, ¿cuál no es una de las operaciones que un Business Intelligence Analyst puede ejecutar en Apache Hive?
Según el texto, ¿cuál no es una de las operaciones que un Business Intelligence Analyst puede ejecutar en Apache Hive?
Conceptualmente, ¿qué paradigma define mejor a Apache Impala?
Conceptualmente, ¿qué paradigma define mejor a Apache Impala?
En seguridad en la nube, ¿cuál es la distribución de responsabilidades según el modelo de responsabilidad compartida?
En seguridad en la nube, ¿cuál es la distribución de responsabilidades según el modelo de responsabilidad compartida?
¿Cuál es el enfoque principal para abordar las necesidades de procesamiento de datos según el texto?
¿Cuál es el enfoque principal para abordar las necesidades de procesamiento de datos según el texto?
¿Qué porcentaje de los datos generados actualmente se considera estructurado?
¿Qué porcentaje de los datos generados actualmente se considera estructurado?
¿Qué tipo de interacción NO se menciona como una fuente principal de datos en la era del Big Data?
¿Qué tipo de interacción NO se menciona como una fuente principal de datos en la era del Big Data?
¿En qué se enfoca la transformación digital según el contenido?
¿En qué se enfoca la transformación digital según el contenido?
¿Qué característica es suficiente para considerar un proyecto como Big Data?
¿Qué característica es suficiente para considerar un proyecto como Big Data?
¿Qué capacidades clave facilitan las tecnologías Big Data?
¿Qué capacidades clave facilitan las tecnologías Big Data?
¿Cuál fue el principal desafío que impulsó a Google a desarrollar tecnologías Big Data?
¿Cuál fue el principal desafío que impulsó a Google a desarrollar tecnologías Big Data?
¿Cuál fue la propuesta clave del Google File System (GFS)?
¿Cuál fue la propuesta clave del Google File System (GFS)?
¿Qué ventaja crucial ofrecía MapReduce a los desarrolladores?
¿Qué ventaja crucial ofrecía MapReduce a los desarrolladores?
¿Cuál fue la principal motivación detrás del desarrollo de Apache Spark?
¿Cuál fue la principal motivación detrás del desarrollo de Apache Spark?
¿Qué principio fundamental permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?
¿Qué principio fundamental permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?
¿Cuál de las siguientes herramientas NO es un componente central del núcleo del ecosistema Hadoop?
¿Cuál de las siguientes herramientas NO es un componente central del núcleo del ecosistema Hadoop?
¿Qué rol crucial desempeña Zookeeper en el ecosistema Hadoop?
¿Qué rol crucial desempeña Zookeeper en el ecosistema Hadoop?
¿Qué herramienta del ecosistema Hadoop brinda la capacidad de ejecutar consultas SQL directamente sobre los datos almacenados en HDFS?
¿Qué herramienta del ecosistema Hadoop brinda la capacidad de ejecutar consultas SQL directamente sobre los datos almacenados en HDFS?
¿Qué tecnología ha ganado prominencia reemplazando a MapReduce debido a su mejorada velocidad y eficacia?
¿Qué tecnología ha ganado prominencia reemplazando a MapReduce debido a su mejorada velocidad y eficacia?
¿Cuál es el propósito principal de las distribuciones de Hadoop?
¿Cuál es el propósito principal de las distribuciones de Hadoop?
¿Cuál de las siguientes distribuciones de Hadoop es totalmente de código abierto y compatible con Windows?
¿Cuál de las siguientes distribuciones de Hadoop es totalmente de código abierto y compatible con Windows?
¿Cuál es la capacidad estándar de un bloque en HDFS?
¿Cuál es la capacidad estándar de un bloque en HDFS?
¿Cuál es el factor de replicación predeterminado en HDFS para asegurar una alta disponibilidad de los datos?
¿Cuál es el factor de replicación predeterminado en HDFS para asegurar una alta disponibilidad de los datos?
¿Cuál es el papel del NameNode dentro de la arquitectura HDFS?
¿Cuál es el papel del NameNode dentro de la arquitectura HDFS?
¿Cuál es la técnica empleada para lograr una alta disponibilidad del NameNode en HDFS?
¿Cuál es la técnica empleada para lograr una alta disponibilidad del NameNode en HDFS?
¿Cuál es el papel del NameNode durante el proceso de escritura en HDFS?
¿Cuál es el papel del NameNode durante el proceso de escritura en HDFS?
¿Cuál comando HDFS se utiliza para examinar los elementos dentro de un directorio?
¿Cuál comando HDFS se utiliza para examinar los elementos dentro de un directorio?
¿Qué comando utilizarías para transferir un archivo desde tu sistema de archivos local hacia HDFS?
¿Qué comando utilizarías para transferir un archivo desde tu sistema de archivos local hacia HDFS?
¿Qué comando se utiliza para suprimir un directorio y todo su contenido dentro de HDFS?
¿Qué comando se utiliza para suprimir un directorio y todo su contenido dentro de HDFS?
¿Cuál es la función del Mapper en MapReduce?
¿Cuál es la función del Mapper en MapReduce?
¿Cuál es el rol del Reducer en el paradigma MapReduce?
¿Cuál es el rol del Reducer en el paradigma MapReduce?
¿Qué aspecto negativo importante presenta MapReduce?
¿Qué aspecto negativo importante presenta MapReduce?
¿Cuál es la función de Spark Core en Apache Spark?
¿Cuál es la función de Spark Core en Apache Spark?
En Apache Spark, ¿qué significan las siglas RDD?
En Apache Spark, ¿qué significan las siglas RDD?
¿Cuál es la diferencia principal entre una transformación y una acción en Spark?
¿Cuál es la diferencia principal entre una transformación y una acción en Spark?
¿Qué restricción principal se debe tener en cuenta al utilizar toPandas
en Spark?
¿Qué restricción principal se debe tener en cuenta al utilizar toPandas
en Spark?
¿Cuál es el propósito principal de los DataFrames en Spark?
¿Cuál es el propósito principal de los DataFrames en Spark?
¿Cuál de las siguientes opciones describe mejor el paradigma de Apache Impala?
¿Cuál de las siguientes opciones describe mejor el paradigma de Apache Impala?
Según el modelo de responsabilidad compartida en seguridad en la nube, ¿qué parte es responsabilidad del proveedor de la nube?
Según el modelo de responsabilidad compartida en seguridad en la nube, ¿qué parte es responsabilidad del proveedor de la nube?
¿Qué habilidad central permite a los analistas de Business Intelligence trabajar con Apache Hive?
¿Qué habilidad central permite a los analistas de Business Intelligence trabajar con Apache Hive?
¿Qué representa un RDD en Apache Spark?
¿Qué representa un RDD en Apache Spark?
¿Cuál de los siguientes servicios de AWS permite ejecutar aplicaciones en contenedores sin gestionar la infraestructura subyacente?
¿Cuál de los siguientes servicios de AWS permite ejecutar aplicaciones en contenedores sin gestionar la infraestructura subyacente?
¿Qué ofrece Microsoft Azure a través de su Azure Marketplace?
¿Qué ofrece Microsoft Azure a través de su Azure Marketplace?
¿Qué función desempeña Flume dentro del ecosistema Hadoop?
¿Qué función desempeña Flume dentro del ecosistema Hadoop?
¿Cuál es el principal objetivo de las distribuciones de Hadoop como Cloudera o Hortonworks?
¿Cuál es el principal objetivo de las distribuciones de Hadoop como Cloudera o Hortonworks?
¿En el contexto de AWS, qué rol desempeña Amazon Redshift?
¿En el contexto de AWS, qué rol desempeña Amazon Redshift?
¿Cuál es la función destacada de Cloud Dataprep en Google Cloud Platform (GCP)?
¿Cuál es la función destacada de Cloud Dataprep en Google Cloud Platform (GCP)?
¿Qué tipo de modelo de servicio en la nube proporciona la infraestructura fundamental, como servidores y redes, que los usuarios pueden controlar?
¿Qué tipo de modelo de servicio en la nube proporciona la infraestructura fundamental, como servidores y redes, que los usuarios pueden controlar?
¿Qué describe mejor la función del NameNode en HDFS?
¿Qué describe mejor la función del NameNode en HDFS?
En Kafka, si tienes más consumidores en un grupo de consumidores que particiones en un topic, ¿qué ocurre?
En Kafka, si tienes más consumidores en un grupo de consumidores que particiones en un topic, ¿qué ocurre?
¿Cuál de estos NO es un beneficio principal del cloud computing?
¿Cuál de estos NO es un beneficio principal del cloud computing?
En el contexto de Google Cloud Platform, ¿qué servicio permite desplegar clústeres Hadoop totalmente gestionados?
En el contexto de Google Cloud Platform, ¿qué servicio permite desplegar clústeres Hadoop totalmente gestionados?
En AWS, ¿qué servicio se utiliza para gestionar la identidad y el acceso a los recursos de la nube?
En AWS, ¿qué servicio se utiliza para gestionar la identidad y el acceso a los recursos de la nube?
En Spark MLlib, ¿qué función cumple un 'Estimador'?
En Spark MLlib, ¿qué función cumple un 'Estimador'?
En Apache Kafka, ¿qué representa un 'topic'?
En Apache Kafka, ¿qué representa un 'topic'?
Si un usuario necesita ejecutar consultas SQL en tiempo real sobre datos almacenados en HDFS, ¿qué herramienta es más adecuada?
Si un usuario necesita ejecutar consultas SQL en tiempo real sobre datos almacenados en HDFS, ¿qué herramienta es más adecuada?
Imagina que tienes un archivo CSV delimitado por comas pero con algunas comas dentro de los campos de texto. ¿Cuál es el método más robusto para leer este archivo en un DataFrame de Spark SQL correctamente?
Imagina que tienes un archivo CSV delimitado por comas pero con algunas comas dentro de los campos de texto. ¿Cuál es el método más robusto para leer este archivo en un DataFrame de Spark SQL correctamente?
Estás diseñando un sistema de procesamiento de datos con Apache Kafka. Tienes un topic con 10 particiones y planeas tener un número variable de consumidores en un grupo de consumidores. ¿Cuál es el número máximo de consumidores activos que puedes tener simultáneamente y seguir aprovechando el paralelismo total sin tener consumidores inactivos?
Estás diseñando un sistema de procesamiento de datos con Apache Kafka. Tienes un topic con 10 particiones y planeas tener un número variable de consumidores en un grupo de consumidores. ¿Cuál es el número máximo de consumidores activos que puedes tener simultáneamente y seguir aprovechando el paralelismo total sin tener consumidores inactivos?
Estás trabajando en un proyecto de Machine Learning en Google Cloud Platform (GCP) y necesitas preparar un conjunto de datos masivo que contiene información personal sensible. Necesitas anonimizar los datos antes de usarlos para entrenar un modelo y garantizar el cumplimiento de las regulaciones de privacidad. ¿Qué servicio de GCP ofrece la funcionalidad más directa para transformar y anonimizar los datos en un entorno gestionado?
Estás trabajando en un proyecto de Machine Learning en Google Cloud Platform (GCP) y necesitas preparar un conjunto de datos masivo que contiene información personal sensible. Necesitas anonimizar los datos antes de usarlos para entrenar un modelo y garantizar el cumplimiento de las regulaciones de privacidad. ¿Qué servicio de GCP ofrece la funcionalidad más directa para transformar y anonimizar los datos en un entorno gestionado?
Flashcards
¿Qué son las tecnologías Big Data?
¿Qué son las tecnologías Big Data?
Conjunto de tecnologías y arquitecturas para almacenar, mover, acceder y procesar datos que antes eran difíciles de manejar debido a su volumen, velocidad y variedad.
¿Quién reconoció la necesidad del Big Data?
¿Quién reconoció la necesidad del Big Data?
Google fue la primera en reconocer la necesidad de procesar grandes volúmenes de datos para indexar la web. Desarrolló Google File System (GFS).
¿Qué es MapReduce?
¿Qué es MapReduce?
Es un modelo de programación que permite procesar archivos en paralelo en clústeres conectados.
¿Qué es Apache Spark?
¿Qué es Apache Spark?
Signup and view all the flashcards
¿Qué es HDFS?
¿Qué es HDFS?
Signup and view all the flashcards
¿Qué es Hive?
¿Qué es Hive?
Signup and view all the flashcards
¿Qué es Apache Kafka?
¿Qué es Apache Kafka?
Signup and view all the flashcards
¿Qué son las distribuciones de Hadoop?
¿Qué son las distribuciones de Hadoop?
Signup and view all the flashcards
¿Qué es HDFS?
¿Qué es HDFS?
Signup and view all the flashcards
¿Qué son los bloques de HDFS?
¿Qué son los bloques de HDFS?
Signup and view all the flashcards
¿Qué es el NameNode?
¿Qué es el NameNode?
Signup and view all the flashcards
¿Qué son los DataNodes?
¿Qué son los DataNodes?
Signup and view all the flashcards
Comando hdfs dfs –ls
Comando hdfs dfs –ls
Signup and view all the flashcards
Comando hdfs dfs –mkdir
Comando hdfs dfs –mkdir
Signup and view all the flashcards
Comando hdfs dfs –copyFromLocal
Comando hdfs dfs –copyFromLocal
Signup and view all the flashcards
Comando hdfs dfs –cat
Comando hdfs dfs –cat
Signup and view all the flashcards
¿Qué es MapReduce?
¿Qué es MapReduce?
Signup and view all the flashcards
¿Qué es el Mapper?
¿Qué es el Mapper?
Signup and view all the flashcards
¿Qué es el Reducer?
¿Qué es el Reducer?
Signup and view all the flashcards
¿Qué es Apache Spark?
¿Qué es Apache Spark?
Signup and view all the flashcards
¿Qué es Spark Core?
¿Qué es Spark Core?
Signup and view all the flashcards
¿Qué es Spark SQL?
¿Qué es Spark SQL?
Signup and view all the flashcards
¿Qué son RDD?
¿Qué son RDD?
Signup and view all the flashcards
¿Qué son transformaciones en Spark?
¿Qué son transformaciones en Spark?
Signup and view all the flashcards
¿Qué son acciones en Spark?
¿Qué son acciones en Spark?
Signup and view all the flashcards
¿Qué es un Job en Spark?
¿Qué es un Job en Spark?
Signup and view all the flashcards
¿Qué es un Stage en Spark?
¿Qué es un Stage en Spark?
Signup and view all the flashcards
¿Qué son Tasks en Spark?
¿Qué son Tasks en Spark?
Signup and view all the flashcards
¿Qué son los DataFrames?
¿Qué son los DataFrames?
Signup and view all the flashcards
¿Qué es Spark SQL?
¿Qué es Spark SQL?
Signup and view all the flashcards
¿Qué es Spark MLlib?
¿Qué es Spark MLlib?
Signup and view all the flashcards
¿Qué son los estimadores?
¿Qué son los estimadores?
Signup and view all the flashcards
¿Qué son los transformadores?
¿Qué son los transformadores?
Signup and view all the flashcards
¿Qué son pipelines?
¿Qué son pipelines?
Signup and view all the flashcards
¿Qué es Spark Structured Streaming?
¿Qué es Spark Structured Streaming?
Signup and view all the flashcards
¿Qué es Apache Kafka?
¿Qué es Apache Kafka?
Signup and view all the flashcards
¿Qué es un sistema de mensajería pub/sub?
¿Qué es un sistema de mensajería pub/sub?
Signup and view all the flashcards
¿Qué son los productores?
¿Qué son los productores?
Signup and view all the flashcards
¿Qué son los consumidores?
¿Qué son los consumidores?
Signup and view all the flashcards
¿Qué es Apache Hive?
¿Qué es Apache Hive?
Signup and view all the flashcards
¿Qué es HiveQL?
¿Qué es HiveQL?
Signup and view all the flashcards
¿Qué es Apache Impala?
¿Qué es Apache Impala?
Signup and view all the flashcards
¿Qué es cloud computing?
¿Qué es cloud computing?
Signup and view all the flashcards
¿Qué es IaaS?
¿Qué es IaaS?
Signup and view all the flashcards
¿Qué es PaaS?
¿Qué es PaaS?
Signup and view all the flashcards
¿Qué es SaaS?
¿Qué es SaaS?
Signup and view all the flashcards
¿Qué es Azure Compute?
¿Qué es Azure Compute?
Signup and view all the flashcards
¿Qué es Azure Virtual Machines?
¿Qué es Azure Virtual Machines?
Signup and view all the flashcards
¿Qué es Azure Data Lake Storage?
¿Qué es Azure Data Lake Storage?
Signup and view all the flashcards
Study Notes
Ingeniería para el Procesamiento Masivo de Datos: Big Data
- Necesidades actuales de procesamiento de datos destacan la interconexión de la sociedad.
- El objetivo principal es comprender cómo las tecnologías big data abordan estas necesidades. Esto incluye el concepto de clúster de ordenadores, tecnologías distribuidas relacionadas y las herramientas del ecosistema Hadoop, su finalidad y relaciones.
La Sociedad Interconectada: La Era del Cliente
- Las tecnologías big data surgen en respuesta al aumento de datos en un mundo interconectado.
- El 90% de la información se ha creado en los últimos dos años.
- El 80% de estos datos son no estructurados, generados por interacciones humanas.
- El 20% restante son datos estructurados producidos por máquinas.
- Fuentes de datos:
- Interacción entre humanos a través de sistemas informáticos.
- Interacción humano-máquina en plataformas digitales.
- Interacción entre máquinas mediante sistemas de monitoreo.
- El análisis de estos datos permite anticipar las demandas de los clientes.
- La transformación digital se centra en el cliente, aprovecha canales digitales e impulsa decisiones basadas en datos transformando a las empresas tradicionales.
Definición de las Tecnologías Big Data
- Las tecnologías tradicionales son insuficientes para las características actuales de los datos: volumen, velocidad y variedad (las tres "v").
- Un proyecto se considera big data si implica al menos una de estas "v".
- Big data son tecnologías y arquitecturas que facilitan el almacenamiento, movimiento, acceso y procesamiento de datos que antes eran difíciles de manejar.
- Las tecnologías big data permiten aplicar técnicas de análisis a mayores volúmenes de datos, mejorando la eficiencia y calidad de los resultados.
Origen de las Tecnologías Big Data
Google y el Nacimiento de Big Data
- Google fue la primera empresa en reconocer y abordar el creciente volumen de datos en Internet para indexar páginas web.
- En 2003, se propuso el Google File System (GFS), un sistema de almacenamiento en clústeres de ordenadores convencionales (commodity hardware) para archivos grandes.
Evolución del Procesamiento de Datos
- En 2004, se introdujo MapReduce, un modelo de programación que permite procesar archivos en paralelo en clústeres, permitiendo simplificar los aspectos de hardware y redes.
- MapReduce se convirtió en un estándar para el desarrollo de software en big data.
Apache Spark y su Impacto
- En 2009, se desarrolló Apache Spark como una solución open source para mejorar las limitaciones de Hadoop.
- Spark comparte con MapReduce la estructura de clústeres de commodity hardware y se ha posicionado como mas rapido.
El Ecosistema Hadoop
- Las tecnologías de procesamiento distribuidos manejan grandes volúmenes de datos a través de múltiples máquinas interconectadas.
- El ecosistema Hadoop se construyó sobre GFS y MapReduce, formando un conjunto de herramientas open source para el procesamiento distribuido.
Herramientas Dentro del Ecosistema Hadoop
- HDFS: Sistema de archivos distribuido para gestión de datos entre nodos en un clúster.
- MapReduce: Paradigma de programación para tareas en un clúster, ahora en desuso.
- Flume: Herramienta para el tratamiento de logs.
- Sqoop: Herramienta para la migración de datos entre bases de datos convencionales y HDFS.
- Zookeeper: Coordinador del ecosistema para la correcta operación de las herramientas.
- Oozie: Herramienta para la planificación y ejecución de flujos de datos.
- Pig: Herramienta para la programación de flujos de datos, utilizando un lenguaje similar a SQL.
- Mahout: Biblioteca de algoritmos de machine learning, ahora compatible con Spark.
- Hive: Herramienta que permite consultas SQL en datos almacenados en HDFS, ahora compatible con Spark.
- HBase: Base de datos NoSQL columnar, con flexibilidad en la longitud y número de campos en los registros.
Herramientas Destacadas para Big Data
- HDFS: Clave en la gestión de datos distribuidos.
- Apache Hive: Acceso SQL a datos estructurados en almacenamiento distribuido.
- Apache Spark: Motor de procesamiento en memoria que ha reemplazado a MapReduce por su velocidad y eficiencia.
- Apache Kafka: Plataforma para la gestión de eventos en tiempo real, utilizando una cola de mensajes distribuida.
Distribuciones de Hadoop
- Las distribuciones de Hadoop agrupan múltiples herramientas en un solo paquete para facilitar su instalación y operación.
- Empresas como Cloudera, Hortonworks y MapR desarrollaron distribuciones personalizadas. Cada distribución puede ser open source o de pago.
Comparativa de Distribuciones de Hadoop
- Cloudera (CDH): Open source (CDH) y de pago, Linux (Windows vía VMWare), creada en 2008, la más extendida y popular.
- Hortonworks: 100 % open source, Linux y Windows, creada en 2011, única para Windows y 100 % open source.
- MapR: Open source y de pago, Linux (Windows: VM Ware), creada en 2009, la más rápida y fácil de instalar.
Hdfs Bloque
- El HDFS (Hadoop Distributed File System) es fundamental para el almacenamiento de datos en Hadoop y el procesamiento paralelo mediante MapReduce.
- Objetivos incluyen conocer las carácteristicas de HDFS, entender su arquitectura y operaciones de lectura y escritura, familiarizarse con comandos de HDFS, el paradigma de programación MapReduce y conocer sus ventajas y desventajas.
Introducción a HDFS
- HDFS es un sistema de archivos distribuido que permite almacenar grandes archivos con acceso en streaming.
- Se caracteriza por ser distribuido, escalable, y diseñado para archivos grandes que requieren múltiples accesos sin modificaciones, no es optimo para aplicaciones que necesitan baja latencia o trabajan con archivos pequeños frecuentemente modificados.
- HDFS utiliza Java y proporciona una interfaz que simula un sistema de archivos único, aunque almacena datos de forma distribuida. Además ofrece comandos similares a los de Linux.
Arquitectura de HDFS
Bloques de HDFS
- HDFS tiene un tamaño de bloque configurable (128 MB por defecto).
- Los bloques están replicados para asegurar la disponibilidad, con un factor de replicación por defecto de 3.
Datanodes y Namenode
- El namenode gestiona la estructura de directorios y la metadata de archivos.
- Los datanodes almacenan los bloques reales.
- El namenode es un único punto de fallo, por lo que hay mecanismos de respaldo y alta disponibilidad, como un par de namenodes activos y en espera que comparten un log de edición para un cambio rápido en caso de fallos.
Proceso de Lectura y Escritura en HDFS
- En la lectura el cliente pregunta al namenode por un archivo, el cual retorna la localización de bloques. Luego, el cliente accede directamente a los datanodes.
- En la escritura el cliente solicita al namenode crear un archivo; el namenode asigna datanodes y se establece un pipeline para garantizar la replicación.
Comandos de HDFS más Frecuentes
- Los comandos de HDFS pueden ser
hadoop dfs
ohdfs dfs
, conhdfs dfs
más común. Todos los comandos requieren rutas completas. hdfs dfs –ls /ruta/directorio
: Visualiza el contenido de un directorio.hdfs dfs –mkdir /ruta/nuevodirectorio
: Crea un nuevo subdirectorio.hdfs dfs –copyFromLocal ruta/local/fichero.txt /ruta/hdfs/
: Copia un archivo local a HDFS.hdfs dfs –copyToLocal /ruta/hdfs/fichero.txt ruta/local
: Copia un archivo desde HDFS a local.hdfs dfs –tail /ruta/hdfs/fichero.txt
: Muestra las últimas líneas de un archivo.hdfs dfs –cat /ruta/hdfs/fichero.txt
: Imprime el contenido completo del archivo. Utilizarmore
para archivos grandes.hdfs dfs –cp /ruta/hdfs/origen/fichero.txt /ruta/hdfs/destino/copiado.txt
: Copia un archivo dentro de HDFS.hdfs dfs –mv /ruta/original.txt /ruta/nuevo.txt
: Renombra o mueve un archivo.hdfs dfs –rm /ruta/fichero.txt
: Elimina un archivo. Usar-r
para eliminar directorios.hdfs dfs –chmod /ruta/hdfs/fichero.txt
: Cambia los permisos de acceso.hdfs dfs –chown usuario /ruta/fichero.txt
: Cambia el propietario de un archivo.
Introducción a MapReduce
- Google desarrolló MapReduce, un paradigma de programación que permite el procesamiento donde están los datos, utilizando CPUs de datanodes en paralelo.
- El modelo abstrae al programador de detalles de hardware y redes enfocándose en el software. Este enfoque permite la gestión de grandes datasets a través de "divide y vencerás".
Funciones en MapReduce
- El usuario implementa el Mapper y el Reducer.
- Mapper: Se invoca en paralelo sobre cada bloque de entrada, generando resultados intermedios en formato (clave, valor) que se almacenan en disco local.
- Reducer: Se aplica a cada grupo de datos generados por el Mapper, combinando los valores asociados a cada clave única para producir resultados finales.
Ejemplo de Aplicación: Conteo de Ocurrencias de Palabras
- La función map procesa cada línea generando tuplas (palabra, 1) para cada palabra.
- El framework agrupa estas tuplas e invoca el reduce para sumar las ocurrencias de cada palabra y generar el resultado final.
Inconvenientes de MapReduce
- El resultado intermedio del Mapper se escribe en disco, siendo más lento que acceder a la memoria RAM.
- El tráfico de red (shuffle) es obligatorio tras la fase Map, afectando a la eficiencia.
- Mover datos entre nodos requiere múltiples escrituras temporales en disco, incrementando el tiempo de procesamiento.
- Los algoritmos iterativos, comunes en machine learning, no se implementan eficientemente.
- Conceptualizar problemas en términos de operaciones map y reduce puede ser complicado y difícil de mantener .
Spark Rdd
- Las deficiencias del paradigma MapReduce impulsaron la creación de Apache Spark como un framework más rápido e intuitivo.
- El objetivo, identificar los módulos de Spark, conocer su arquitectura y practicar funciones para el procesamiento de datos.
Apache Spark
- Spark surgió en 2009 en Berkeley.
- Spark es un motor unificado de cálculo en memoria para el procesamiento paralelo y distribuido de datos capaz de operar desde distintas APIs, optimizando consultas y ofreciendo un rendimiento superior en tareas iterativas.
Componentes de Spark
- Spark tiene una API distribuida y fácil de usar que opera como consultas SQL.
- Los principales componentes:
- Spark Core: Contiene las estructuras de datos fundamentales como los RDD.
- Spark SQL: API para manejar tablas de datos distribuidas (DataFrames) y ejecutar SQL.
- Spark Streaming: Procesamiento distribuido de datos en tiempo real.
- Spark MLlib: Implementaciones de algoritmos de Machine Learning.
- Spark GraphX: Procesamiento de grafos.
Arquitectura de Spark
- La arquitectura de Spark permite escribir aplicaciones secuenciales que se ejecutan en un driver que se conecta a un clúster.
- Se crea un SparkSession para permitir al programa comunicarse con los workers y utilizar sus recursos para ejecutar sentencias distribuidas.
Resilient Distributed Datasets (RDD)
- Los RDD son la abstracción fundamental en Spark, representando colecciones no ordenadas que se distribuyen en la memoria RAM de los nodos.
- Los RDD son resistentes a fallos, se distribuyen a través de particiones en diferentes nodos, permitiendo su reconstrucción a partir de un Directed Acyclic Graph (DAG) en caso de fallo.
- Los RDD son inmutables.
Transformaciones y Acciones
- Las transformaciones se aplican a RDD para crear nuevos RDD y son perezosas (lazy evaluation), solo se ejecutan cuando se invoca una acción.
- Las acciones calculan resultados y los devuelven al driver, desencadenando la ejecución de toda la secuencia de transformaciones. Las acciones deben caber en la memoria del driver.
- Ejemplos de transformaciones:
map
,filter
. - Ejemplos de acciones:
reduce
,collect
.
Jobs, Stages y Tasks
- Un job en Spark representa el procesamiento necesario para completar una acción del usuario.
- Cada job consta de stages, que son procesamientos que no requieren movimiento de datos entre nodos.
- Las tasks son las unidades mínimas de trabajo y transformaciones aplicadas a las particiones de los RDD.
Ejemplo Completo con RDD
Introducción
- Los RDDs se comparan en utilidad con los DataFrames, así como Hive. Utilizar los archivos flights.csv y airport-codes.csv que se encuentran en HDFS bajo /user/data.
Objetivo del Ejemplo
- El objetivo es contar los vuelos por aeropuerto de destino contenidos en flights.csv.
- Se desea correlacionar el número de vuelos con el nombre completo del aeropuerto de destino, que se encuentra en airport-codes.csv.
Inicialización de Spark
- Se importa SparkSession de PySpark y se inicia una sesión con el nombre "demo_rdd".
- Se accede al SparkContext necesario para trabajar con RDD.
Lectura de los Archivos
- Se lee flights.csv como un RDD donde cada línea es un string completo.
- Se ignora la cabecera del archivo utilizando una transformación filter.
Procesamiento de Datos
- Se utiliza split para dividir cada línea en componentes y obtener un RDD con tuplas de datos.
- Para cambiar los tipos de año, mes y día a enteros, se aplica una transformación map.
Contar Vuelos por Destino
- Se agrupan los destinos y se cuentan cuántos vuelos llegan a cada uno.
- Se crea un PairRDD donde la clave es el destino y el valor es 1.
Agrupación y Suma de Vuelos
- Se agrupan los destinos usando groupByKey y se suman los valores asociados a cada clave.
- Alternativamente, se cuenta la longitud de la lista de valores.
Integración de Datos de Aeropuertos
- Se lee el archivo airport-codes.csv y se crea otro PairRDD que contiene el código del aeropuerto y su nombre.
- Se eliminan las comillas de los destinos en el RDD de vuelos para permitir una correcta unión.
Realización del Join
- Se hace un join entre los RDD de vuelos y los códigos de aeropuerto basándose en las claves.
- Esto produce un nuevo PairRDD donde la clave es el código del aeropuerto y el valor es una tupla con el número de vuelos y el nombre del aeropuerto.
Presentación de Resultados
- Se extraen los campos para mostrar el nombre del aeropuerto y el número de vuelos recibidos.
- Los resultados finales muestran el nombre del aeropuerto junto con la cantidad de vuelos que recibe.
Conclusión
- Los RDDs son poderosos para manejar información pero requieren un buen entendimiento de su estructura y tipos de datos.
- El próximo capítulo abordará soluciones ofrecidas por Spark para hacer este tipo de tareas más intuitivas a través de una API estructurada y Spark SQL.
Spark Df & Api
- Apache Spark, como tecnología eficiente para procesar grandes datos, supera a MapReduce.
- Este capítulo se centra en la API estructurada de Spark y en DataFrames, destacando sus ventajas frente a los RDD.
- Los objetivos, conocer la API estructurada, sus ventajas y el uso de Spark SQL para manipular DataFrames.
DataFrames en Spark
- Los DataFrames permiten manejar datos en forma de tablas distribuidas, facilitando un alto nivel de abstracción en comparación con los RDD.
- Un DataFrame consiste en un RDD de objetos Row, donde cada fila es una tabla con tipos de datos predefinidos. Su esquema define la estructura de las columnas.
- Al traer datos a una máquina usando toPandas, se deben considerar limitaciones de memoria.
API Estructurada de Spark: Lectura y Escritura de DataFrames
- Spark soporta la lectura de datos desde HDFS, Amazon S3 y bases de datos relacionales. Los formatos pueden ser CSV, JSON o Parquet.
- La lectura de DataFrames se realiza mediante spark.read, especificando opciones como formato, esquema y modo de lectura.
- La escritura se realiza mediante .write, configurando formato y modo de escritura.
API Estructurada de Spark: Manipulación de DataFrames
- Las operaciones sobre DataFrames se centran en transformaciones de columnas.
- Las transformaciones devuelven un nuevo DataFrame y se pueden encadenar; además, se pueden utilizar operaciones disponibles de RDD.
- Funciones comunes incluyen select, withColumn, drop, when y métodos estadísticos como describe().
Ejemplo de Uso de API Estructurada
- Se replica un ejemplo de manejo de datos usando la API estructurada para mostrar la mayor facilidad en la manipulación.
- Operan funciones sobre la información de vuelos en un DataFrame.
Spark SQL
- Spark SQL permite realizar consultas en lenguaje SQL sobre DataFrames registrados como tablas, combinando así SQL con la API estructurada.
- La interfaz de línea de comandos de Spark SQL y el método .sql() de la SparkSession son las herramientas para ejecutar consultas SQL.
- Se introducen conceptos de tablas gestionadas y no gestionadas, así como la importancia de las vistas en Spark SQL, que definen transformaciones sobre tablas existentes.
Ejemplo de Spark SQL
Carga de Datos
- Se inicia la carga de datos utilizando Spark SQL, partiendo del archivo CSV de vuelos almacenado en HDFS
spark.read.option("header", "true").csv("hdfs:///user/data/flights.csv")
, indica que la primera fila del archivo es la cabecera.
Registro de DataFrames
- Es esencial registrar los DataFrames que se desean utilizar en las consultas SQL como tablas o vistas.
flightsDF.createOrReplaceTempView('flights')
para crear un vista temporal llamada 'flights'.
Cálculo de Vuelos.
- Para calcular cuántos vuelos llegan a cada aeropuerto de destino, se emplea una consulta SQL:
SELECT dest, COUNT(dest) AS dest_count FROM flights GROUP BY dest ORDER BY dest_count DESC
.
Registro del Resultado
- El resultado de la consulta se debe registrar nuevamente como vista.
flights_dest_count.createOrReplaceTempView('flights_dest_count')
y se muestra el resultado conflights_dest_count.show(5)
.
Conclusiones
- Se obtiene un resultado idéntico al obtenido mediante la API estructurada. A pesar de las diferencias en el código entre las APIs, ambas opciones proporcionan el mismo plan de ejecución, ya que Spark está diseñado como motor de procesamiento unificado.
Ejemplo de Spark SQL
Cargando los Datos
- Se carga un DataFrame de vuelos desde un archivo CSV en HDFS
flightsDF = spark.read.option("header", "true").csv("hdfs:///user/data/flights.csv")
.
Registrando el DataFrame como Vista
- Para usar el DataFrame con SQL, es necesario registrarlo como una vista temporal.
flightsDF.createOrReplaceTempView('flights')
.
Consultando los Datos
- Se utiliza una consulta SQL para calcular la cantidad de vuelos que llegan a cada aeropuerto de destino
SELECT dest, COUNT(dest) AS dest_count FROM flights GROUP BY dest ORDER BY dest_count DESC
.
Trabajando con los Resultados
- Después de ejecutar la consulta, es necesario registrar el resultado como una nueva vista.
flights_dest_count.createOrReplaceTempView('flights_dest_count')
. - Se muestran los primeros cinco resultados utilizando el método
show(5)
, logrando idénticos resultados que con la API estructurada.
Spark Mlib & Stream
- Este capítulo se enfoca en Spark MLlib y Spark Streaming.
- Se presentan las capacidades de Spark MLlib con ejemplos prácticos.
- Se introduce brevemente Apache Hive como herramienta para consultas SQL en datos distribuidos.
Spark MLlib
- Spark MLlib proporciona herramientas para tareas como limpieza de datos, ingeniería de variables, aprendizaje de modelos y evaluación de modelos sobre grandes datasets.
- No incluye métodos para el despliegue en producción de modelos.
- MLlib radica en su capacidad para manejar modelos distribuidos mediante Spark de grandes volúmenes de datos.
Despliegue de Modelos en Producción con Spark
- Spark no está diseñado para la explotación online de modelos, sino para entrenar modelos en modo batch con datos grandes.
- Se puede entrenar, guardar el modelo y predecir datos uno a uno, aunque esto no es recomendado.
Estimadores y Transformadores
- La API de Spark MLlib incluye estimadores y transformadores.
- Los estimadores requieren ajustar parámetros usando el método fit, mientras que los transformadores transforman un DataFrame sin aprender parámetros.
Algunos Transformadores Habituales
- VectorAssembler: Combina varias columnas en una sola columna de tipo vector.
- Modelos Entrenados: Se pueden usar como transformadores para realizar predicciones sobre nuevos datos, agregando los resultados a nuevas columnas en el DataFrame.
Estimadores más Comunes
- StringIndexer: Convierte columnas categóricas en índices numéricos.
- OneHotEncoderEstimator: Transforma columnas indexadas en variables dummy.
Pipelines en Spark ML
- Los pipelines simplifican el proceso de preprocesamiento y entrenamiento en machine learning.
- Cada etapa de un pipeline es un transformador o un estimador.
- La estructura de un pipeline permite ajustar y ejecutar rápidamente todos los pasos necesarios en el entrenamiento de un modelo.
- Un ejemplo típico es la regresión logística para predecir retrasos en vuelos.
Spark Structured Streaming
Introducción a Spark Structured Streaming
- Spark Structured Streaming reemplaza a Spark Streaming. Se basa en streaming DataFrames.
- Este enfoque reduce la latencia, permitiendo cálculos incrementales.
Procesamiento de Flujos de Datos
- El procesamiento de flujos implica la incorporación continua de nuevos datos para actualizar resultados en tiempo real.
- Estas actualizaciones pueden incluir la eliminación de datos más antiguos.
API de Structured Streaming
- Structured Streaming mantiene una API similar a DataFrames, permitiendo que el mismo código maneje DataFrames estáticos y streaming.
- La única acción es
start()
, que inicia el flujo de cálculo.
Fuentes de Datos y Salida
- Structured Streaming permite leer datos en tiempo real desde Kafka, HDFS o Amazon S3 y desde sockets.
- La lectura se realiza mediante el método
readStream
en SparkSession. Es necesario especificar el esquema de los archivos de entrada.
Mantenimiento de Datos y Esquemas
- Se puede leer un DataFrame estático para determinar el esquema, que luego se aplica al streaming DataFrame.
- La salida puede escribirse en Kafka o en archivos, y existen diferentes modos de salida: añadir, actualizar o reemplazar completamente.
Ejemplo de Código
- Se ejemplifica un caso donde se procesan archivos de retrasos de vuelos en HDFS. El código calcula el retraso medio en cada aeropuerto usando streaming DataFrames.
KAFKA Streaming
- Apache Kafka es una herramienta en el ecosistema de big data, para el procesamiento de flujos de datos en tiempo real.
- Entender la mensajería publicación/suscripción, el concepto de bus de mensajes distribuido y el funcionamiento interno de Kafka.
Mensajería Publicación/Suscripción
- Las aplicaciones generan datos debiendo ser comunicados a sistemas que los analicen.
- Kafka se presenta como una solución para la complejidad de las conexiones entre subsistemas, proponiendo un único sistema para publicar y consultar información.
Introducción a Apache Kafka
- Kafka es un sistema de mensajería que implementa el patrón pub/sub.
- Conceptos clave: bus, mensaje, sistema distribuido y replicado, publicación/suscripción, topics y particiones.
Casos de Uso Típicos de Kafka
- Casos de uso:
- Seguimiento de actividad en sitios web.
- Sistemas de mensajería que consolidan información para alertas.
- Recopilación de logs.
- Replicación de cambios en bases de datos.
- Procesamiento en tiempo real de flujos de datos.
Conceptos Fundamentales
- Kafka, creado para resolver problemas de mensajería en tiempo real, es utilizado por grandes empresas.
- Un clúster de Kafka permite escalar la carga y garantizar la disponibilidad a través de múltiples brókeres y Zookeeper para la gestión de metadatos.
- Los topics tienen particiones para el balanceo de carga y están configurados para mantener mensajes, incluyendo su política de retención y replicación.
Implementación de Productores Kafka
- Para que las aplicaciones escriban en Kafka, se debe implementar código utilizando la API de Java, y se plantea el manejo de pérdidas de mensajes y restricciones de tiempo real.
- Los tipos de envíos son "fire-and-forget", envío síncrono y asíncrono.
- Se menciona la serialización usando Avro para transformar objetos en arrays de bytes, facilitando la manipulación de datos complejos.
Implementación de Consumidores Kafka
Grupos de Consumidores
- Los consumidores en Kafka son aplicaciones que leen mensajes de topics específicos.
- Para escalar el consumo, se pueden crear múltiples procesos consumidores en un mismo grupo, donde cada consumidor lee en paralelo desde las particiones asignadas. Si hay más consumidores que particiones, algunos consumidores quedarán ociosos.
- Cuando se agregan o eliminan consumidores, Kafka realiza un rebalanceo de particiones lo que debe evitarse.
Detalles de Implementación de Consumidores
- Para implementar consumidores, se configura un objeto KafkaConsumer especificando los tipos de clave y valor de los mensajes que espera recibir.
- El proceso de lectura de mensajes incluye un bucle infinito que utiliza el método poll para verificar la disponibilidad de mensajes en el topic y mantener el estado activo del consumidor.
Hive & Impala
- Analizan Apache Hive y Apache Impala.
- Apache Hive permite consultas SQL sobre datos distribuidos mediante motores de ejecución (MapReduce, Spark o Tez).
- Apache Impala ofrece acceso uniforme a diversas fuentes de datos distribuidas usando SQL.
- El objetivo es familiarizar a los alumnos con la potencia de Apache Hive y Apache Impala.
Apache HiveQL
- Apache Hive es un sistema de data warehouse que facilita el manejo y análisis de datos distribuidos mediante el lenguaje SQL,
- Hive permite a analistas de inteligencias de negocio realizar tareas de ETL, reporting y análisis.
- Utiliza un lenguaje de consulta llamado HiveQL, similar a SQL y está enfocado en OLAP.
Ejemplo de Uso
- Se muestra la creación de una tabla para gestionar datos de vuelos desde un archivo CSV almacenado en HDFS. Se pueden definir columnas y tipos de datos.
- Podemos realizar consultas sin programación compleja, por ejemplo, contar cuántos vuelos llegan a cada destino.
Funcionamiento de Hive
- Hive puede utilizar Hiveserver2, CLI y HWI. Hiveserver2 actúa como un servidor que escucha peticiones en HiveQL.
- Clients pueden ser diseñados en Python y Java, a través de interfaces como JDBC u ODBC.
Arquitectura de Hive Sobre MapReduce
- La arquitectura coordina el proceso desde la recepción de una consulta hasta su ejecución en un clúster de Hadoop.
Diferencias Entre Hive y las Bases de Datos Tradicionales
- Hive opera bajo un modelo de esquema diferente llamado "schema-on-read".
- No soporta transacciones y actualizaciones en registros individuales.
Gestión de Tablas en Hive
- Una tabla en Hive se compone de datos y metadatos, clasificándose como gestionadas y externas.
- Hive soporta formatos de archivo y define cómo se cargan los datos.
Ejecución de una Consulta en un Clúster de Hive
- Se crean tablas para vuelos y códigos de aeropuertos, cargando datos y realizando consultas con uniones de tablas y creación de vistas.
- Finalmente, se escribe los resultados y se elimina tanto vistas como tablas, dependiendo de si los datos son gestionados o externos.
Apache Impala MPP
Introducción a Apache Impala
- Apache Impala es una herramienta de procesamiento masivamente paralelo (MPP) para ejecutar consultas interactivas en SQL.
- Se integra con el ecosistema Hadoop usando el mismo controlador ODBC que Apache Hive y es capaz de leer y escribir en tablas de Hive y Apache Kudu.
Historia y Comparación con Apache Hive
- Impala permite consultas rápidas mediante su propia arquitectura de demonios.
Capacidad de Escritura y Resiliencia
- En versiones posteriores, Impala añadió soporte para escritura en disco, mejorando su resiliencia.
Ejecución de Consultas en Impala
- Las aplicaciones que requieren consultas a Impala se denominan "clientes" incluyendo interfaces gráficas como Hue.
- El metastore de Hive contiene metadatos sobre los datos accesibles..
Proceso de Ejecución de una Consulta
- Un cliente envía una consulta SQL a Impala a través de interfaces estandarizadas.
- Impala analiza la consulta y planifica tareas para su ejecución eficiente.
- Los procesos impalad acceden a los datos en HDFS o HBase de manera local.
- Los resultados parciales son enviados al demonio coordinador, que devuelve el resultado final al cliente.
Arquitectura de Impala
- El demonio impalad es el componente esencial que ejecuta procesos en cada datanode, coordinando y paralelizando las consultas.
Componentes Clave de la Arquitectura
- Statestore: Verifica el estado de los demonios de Impala y envía alertas sobre fallos.
- Catalog Service: Comunica los cambios en los metadatos.
Azure
- Se han explorado tecnologías de big data y la administración de clústeres locales, lo que motiva el uso de servicios de cloud computing.
- El objetivo es entender el concepto de cloud computing, sus orígenes, beneficios, modelos de despliegue, modelos de servicio como IaaS, PaaS y SaaS, explorando Microsoft Azure.
Introducción a Cloud Computing
- Cloud computing se refiere a servicios accesibles vía Internet, eliminando la complejidad detrás de protocolos.
- Se incluyen servicios como almacenamiento, software y analítica, con la ventaja de pagar solo por lo que se usa y la virtualización y abstracción de los sistemas físicos.
Ventajas del Cloud Computing
- Disponibilidad: Garantiza el funcionamiento continuo de aplicaciones mediante replicas a gran escala.
- Escalabilidad: Permite a los sistemas crecer fácilmente ante la demanda.
- Elasticidad: Ajusta recursos rápidamente según la carga de trabajo.
- Escala global: Proporciona recursos adecuados y localizados geográficamente.
- Productividad: Reduce las tareas de instalación y mantenimiento.
- Seguridad: Proveedores ofrecen controles de seguridad para proteger aplicaciones y datos.
- Fiabilidad y tolerancia a fallos: Capacidad de recuperarse rápidamente de fallos.
- Recuperación ante desastres: Determina cómo una infraestructura se recupera tras eventos normales.
- Coste: Hay una comparativa entre gastos de capital y el pago por consumo en servicios de cloud computing.
Tipos de Nube y Servicios en la Nube
-
La clasificación se divide en modelos de despliegue y modelos de servicio.
-
Modelos de despliegue:
- Nube pública: Recursos ofrecidos por proveedores externos a través de Internet.
- Nube privada: Recursos usados exclusivamente por una organización.
- Nube híbrida: Combinación de nubes públicas y privadas.
-
Modelos de servicio:
- IaaS: Alquiler de infraestructura esencial como servidores y redes.
- PaaS: Entorno de desarrollo y gestión para aplicaciones.
- FaaS / Serverless: Enfoque en ejecutar funciones específicas.
- SaaS: Aplicaciones software accesibles por Internet.
Casos de Uso de los Servicios en la Nube
- Los servicios en la nube son utilizados en aplicaciones cotidianas.
- Casos de uso incluyen:
- Construir y escalar rápidamente aplicaciones.
- Crear y restaurar copias de seguridad con alta disponibilidad.
- Streaming de video y audio mediante redes globales.
- Proporcionar software bajo demanda.
- Análisis de datos para descubrir patrones útiles.
Microsoft Azure
Microsoft Azure Como Plataforma de Computación en la Nube
Descripción General
- Microsoft Azure es una plataforma en la nube con una amplia gama de servicios.
- Azure ofrece Azure Portal para gestionar servicios y el Marketplace que ofrece servicios de terceros.
Orígenes de Microsoft Azure
- Azure se originó a partir de Azure Platform y Windows Azure Platform, y se organiza en infraestructura, plataforma, gestión y seguridad.
Conceptos y Servicios Transversales
Regiones y Zonas de Disponibilidad
- Azure está compuesto por datos distribuidos en regiones y zonas.
Seguridad en Microsoft Azure
- La seguridad en Azure es responsabilidad compartida entre el proveedor y el usuario, ofreciendo Azure Active Directory y un servicio de monitoreo de seguridad.
Servicios de Cómputo
Azure Compute
- Azure Compute proporciona servicios de cómputo bajo demanda, como máquinas virtuales y contenedores.
Azure Virtual Machines
- Ofrece máquinas virtuales Windows y Linux para ejecutar sistemas operativos.
Azure Container Instances y Azure Kubernetes Service
- Permiten a los usuarios ejecutar aplicaciones en contenedores
Servicios de Redes
- Ofrece servicios de conexión entre recursos como Azure Virtual Network, Azure Load Balancer y Azure Firewall.
Servicios de Almacenamiento
Azure Storage
- Azure Storage comprende servicios que garantizan alta durabilidad y disponibilidad y se divide en Azure Blob Storage para datos no estructurados Azure File Storage y Azure Queue Storage para mensajería asíncrona.
Bases de Datos
- Azure ofrece una variedad de servicios de bases de datos como Azure Cosmos DB y Azure SQL Database.
- Azure Database Migration Service ayuda en la migración de bases de datos a la plataforma de Azure.
Big Data y Analítica de Datos
Azure Data Lake Storage
- Este servicio de almacenamiento de datos es compatible con el ecosistema Hadoop.
Azure Synapse Analytics
- Proporciona un sistema de análisis a gran escala, separando el almacenamiento del procesamiento.
Azure Stream Analytics y Azure HDInsight
- Azure Stream Analytics permite el procesamiento de datos en tiempo real para aplicaciones IoT.
- Azure HDInsight gestiona clústeres de Hadoop.
Azure Databricks
- Es un servicio basado en Apache Spark.
Inteligencia Artificial
Azure Machine Learning
- Azure proporciona herramientas para desarrollar y gestionar modelos de machine learning.
Servicios de Inteligencia Artificial Preentrenados
- Azure ofrece APIs preentrenadas como Vision API, Speech API y Natural Language Processing API.
Aws
- Se explorará Amazon Web Services (AWS) y como se relaciona con las tecnologías de big data en la nube.
- Los objetivos del tema,conocer AWS, explorar sus servicios cloud, examinar los servicios IaaS adecuados para big data, y conocer alternativas PaaS y SaaS enfocadas en big data, analytics y machine learning.
Amazon Web Services
- Amazon Web Services (AWS) es la plataforma líder en servicios cloud.
- La infraestructura global que proporciona AWS y su modelo de pago por uso, atraen a empresas.
Regiones y Availability Zones (AZ)
- AWS proporciona una disponibilidad global mediante regiones, Las regiones cuentan disponibilidad por latencia, precios, legislación y disponibilidad de servicios.
- Cada región incluye al menos dos availability zones (AZ), interconectados para alta disponibilidad.
Servicios Transversales: Seguridad y Gestión
- AWS enfoca su seguridad en la protección de datos, gestión de identidad y acceso, protección de infraestructura, detección de amenazas y la responsabilidad compartida entre Aws y usuarios.
- Servicios como KMS, IAM y WAF gestionan la seguridad.
Servicios de Computación
- Los servicios destacados incluyen EC2 (servidores virtuales), ECS (contenedores Docker) y EKS (contenedores Kubernetes).
- ECS y EKS permiten ejecutar aplicaciones en contenedores gestionadas y escalables.
Servicios de Red
- AWS utiliza Virtual Private Cloud (VPC) para aislar recursos y controlar el tráfico en subredes, incluyendo subredes públicas y privadas.
Servicios de Almacenamiento
- EBS (almacenamiento persistente para EC2), S3 (almacenamiento de objetos) y EFS (almacenamiento de archivos) son los más utilizados.
- S3 tiene diferentes tipos de almacenamiento y ofrece encriptación.
Bases de Datos
- Amazon RDS (bases de datos relacionales) y DynamoDB (bases de datos NoSQL), Amazon ElastiCache, DocumentDB los servicios para bases de datos.
Servicios de Big Data y Analítica
- La sección explora opciones enfocadas en facilitar instancias y construir clústeres gestionados de las instancias EC2.
Amazon Elastic MapReduce (Amazon EMR)
Descripción General de Amazon EMR
- Amazon E
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.