Introducción
Los textos proporcionados describen la administración y monitorización de sistemas Hadoop, presentando un caso práctico en un banco que adopta esta tecnología. Se exploran herramientas clave para esta tarea, comenzando con las interfaces web nativas de HDFS (Namenode UI) y YARN (ResourceManager UI) para supervisar el almacenamiento y la ejecución de aplicaciones. Luego, se introducen Apache Ambari y Cloudera Manager como soluciones más completas que facilitan la instalación, gestión y monitorización integral de clústeres Hadoop, incluyendo configuración y alertas. Finalmente, se examina Ganglia como una herramienta genérica para la monitorización de clústeres, aunque menos específica para la administración de Hadoop en comparación con Ambari y Cloudera Manager..
Briefing Document: Administración y Monitorización de Sistemas Hadoop
Fecha: 26 de octubre de 2023
Fuente: Excerptos de «BDA04 Administración y monitorización de sistemas Hadoop.Archivo.pdf»
Propósito: Proporcionar una visión general de los temas principales, ideas clave y hechos importantes presentados en el material de formación sobre la administración y monitorización de sistemas Hadoop.
1. Introducción y Contexto
El material comienza con un caso práctico del Banco Español de Inversiones (BEI), una institución de banca privada con más de 100 años de historia. Tradicionalmente enfocado en el conocimiento interno de sus expertos para asesorar a grandes inversores, el banco poseía una arquitectura de sistemas basada principalmente en un mainframe y una herramienta CRM.
Sin embargo, una nueva dirección ha impulsado una estrategia de transformación digital, buscando incorporar la tecnología para mejorar la toma de decisiones mediante modelos predictivos y ofrecer funcionalidades a través de diversos canales (web, móvil, oficinas).
Para lograr esto, el BEI ha invertido en tecnologías Big Data e implementado una plataforma Hadoop, migrando datos desde el mainframe y el CRM. Un equipo de científicos de datos y analistas de negocio ya está trabajando en el clúster, desarrollando modelos predictivos y realizando análisis cruzados de datos, capacidades que antes eran limitadas debido a la inaccesibilidad de la información.
El equipo de IT, liderado por María Robles, se enfrenta ahora al reto de administrar este nuevo entorno Hadoop, con un número creciente de usuarios accediendo al clúster.
2. Desafíos de la Administración y Monitorización de Hadoop
El material destaca que la administración de Hadoop requiere un mayor esfuerzo en comparación con otras plataformas debido a varios factores:
- Amplio ecosistema de componentes: Cada componente (HDFS, YARN, Hive, Spark, etc.) se desarrolla de forma independiente, con su propio funcionamiento, versiones, archivos de configuración y métricas de monitorización.
- Entorno distribuido: Hadoop se ejecuta en un conjunto de servidores que puede ser numeroso, cada uno con su propio sistema operativo y hardware susceptible a fallos.
- Nivel de madurez inferior: En comparación con soluciones más establecidas, Hadoop tiene una base instalada menor y menos experiencia de un fabricante único que se traduzca en documentación exhaustiva y herramientas integradas.
3. Herramientas para la Administración y Monitorización de Hadoop
El documento introduce diversas herramientas disponibles para facilitar la administración y monitorización de plataformas Hadoop:
- Consolas de monitorización de HDFS (Namenode UI) y YARN (ResourceManager UI): Ofrecen una visión básica de la actividad en cada servicio, permitiendo acceder a logs de aplicaciones y procesos.
- Apache Ambari y Cloudera Manager: Consideradas las herramientas más potentes y fáciles de usar para la instalación y administración de Hadoop. Proporcionan funcionalidades como visualización de cuadros de mando, creación de alarmas, modificación de configuración y administración de usuarios.
- Ganglia: Una herramienta opensource para la monitorización de clústeres de servidores en general. Aunque no es específica para Hadoop, puede ser útil para la monitorización del hardware subyacente.
4. Configuración de un Clúster Hadoop
La configuración de Hadoop se basa en ficheros XML asociados a cada servicio (HDFS, YARN, Hive, etc.), ubicados habitualmente en los directorios /etc/conf en los servidores donde se ejecuta el servicio.
Se mencionan los principales ficheros de configuración y algunos parámetros clave para los servicios más importantes:
Hadoop core (HDFS, YARN y MapReduce):
- core-site.xml: Configuración común de los componentes core (e.g., fs.defaultFS, hadoop.security.authentication).
- hdfs-site.xml: Configuración específica de HDFS (e.g., fs.namenode.name.dir, dfs.datanode.data.dir, dfs.namenode.http-address).
- yarn-site.xml: Configuración específica de YARN (e.g., yarn.resourcemanager.scheduler.class, yarn.nodemanager.log-dirs, yarn.resourcemanager.webapp.address).
Apache Hive:
- hive-site.xml: Configuración principal de Hive (e.g., hive.execution.engine, hive.server2.enable.doAs, hive.server2.thrift.port).
Apache Spark:
- spark-defaults.conf: Fichero para parametrizar valores por defecto (e.g., spark.yarn.historyServer.address, spark.history.ui.port, spark.eventLog.dir).
Las modificaciones de la configuración pueden realizarse directamente en los ficheros o a través de herramientas de administración como Ambari o Cloudera Manager. Tras cualquier cambio, suele ser necesario reiniciar el servicio afectado, lo que implica una posible pérdida de servicio temporal.
5. Monitorización a Nivel de Sistema Operativo (Linux)
Dado que la mayoría de los clústeres Hadoop se ejecutan en sistemas Linux, es crucial monitorizar aspectos clave del sistema operativo. Problemas de rendimiento en Linux afectarán directamente el funcionamiento de Hadoop.
Las principales variables a monitorizar en un sistema Linux son:
- Uso de CPU: Vigilar picos constantes o prolongados y analizar los procesos que consumen más recursos (comando top).
- Uso de memoria: Detectar si hay memoria RAM insuficiente que cause un intercambio excesivo de memoria (swapping), lo que ralentiza el sistema (comandos vmstat, meminfo, free).
- Almacenamiento en disco: Verificar el espacio disponible y el rendimiento del disco para identificar posibles cuellos de botella de E/S (comandos iostat, sar).
- Tráfico de red: Monitorizar bytes recibidos y enviados para identificar problemas de conectividad o rendimiento de la red (comando dstat).
La autoevaluación enfatiza la importancia de monitorizar las métricas del sistema operativo Linux porque Hadoop se ejecuta sobre él, consumiendo sus recursos, y porque implica la ejecución de muchos servicios en la misma máquina, lo que podría generar conflictos visibles a nivel de sistema operativo.
6. Interfaz de HDFS: Namenode UI
La Namenode UI es una interfaz web de administración que ofrece HDFS por defecto, accesible por defecto en el puerto 50070 (configurable en hdfs-site.xml). Permite a administradores como María Robles monitorizar el estado de la capa de almacenamiento, vital para toda la plataforma.
La interfaz proporciona información general y diversas pestañas:
- Visión general: Muestra un resumen del estado de HDFS.
- Datanodes: Lista los Datanodes, mostrando su IP, la última comunicación de check, capacidad y uso de disco. Se puede acceder al detalle de cada Datanode para ver los bloques que contiene, capacidad y rutas locales. También permite acceder a los logs del Datanode.
- Datanode Volume Failures: Muestra errores de disco detectados en HDFS.
- Snapshot: En caso de haber snapshots, los muestra.
- Startup progress: Muestra el estado del proceso de arranque de HDFS.
- Utilities: Ofrece funcionalidades como:
- Visualizar el contenido de HDFS.
- Ver los logs de HDFS.
- Ver el fichero de configuración de HDFS.
- Realizar un volcado de los hilos en ejecución para análisis de errores.
La autoevaluación indica que la Namenode UI permite monitorizar el estado de HDFS, proporcionando mucha información necesaria, aunque su formato no sea muy amigable, y no ofrece funcionalidades para administrar el servicio (parar, arrancar, modificar configuración).
7. Interfaz de YARN: ResourceManager UI
Similar a HDFS, YARN también proporciona una interfaz web de monitorización (ResourceManager UI) que se despliega en el nodo donde se ejecuta el servicio ResourceManager. Permite a administradores como María Robles monitorizar las aplicaciones que se ejecutan en el clúster y el estado de los recursos.
La interfaz principal muestra un resumen del sistema y un menú con opciones como:
- Nodes: Información de los nodos worker (cantidad, estado, dirección interna, recursos utilizados y disponibles).
- Applications: Listado de aplicaciones ejecutadas y en ejecución, con detalles sobre su ejecución (usuario, nodos utilizados, logs). Permite filtrar por estado (en ejecución, finalizadas, paradas, etc.).
- Scheduler: Muestra el estado de las colas de ejecución configuradas en YARN (capacidad, ocupación).
- Tools: Ofrece utilidades como ver la configuración de YARN, ficheros de log, hilos de ejecución, y métricas actuales en formato JSON.
La autoevaluación confirma que el ResourceManager UI permite ver el total de memoria y núcleos que YARN puede utilizar y su consumo actual, qué aplicaciones se están ejecutando y sus recursos consumidos, y qué nodos worker están ejecutando YARN y su estado. No permite parar tareas que consumen muchos recursos directamente desde la interfaz básica.
8. Apache Ambari
Apache Ambari es una herramienta diseñada para simplificar la administración de Hadoop, abarcando el aprovisionamiento, la administración y la monitorización de clústeres. Ofrece una interfaz web intuitiva respaldada por APIs RESTful.
Ambari permite a los administradores:
- Instalar un clúster de Hadoop: Proporciona un asistente paso a paso para la instalación de servicios en múltiples hosts y gestiona la configuración.
- Administrar un clúster Hadoop: Permite iniciar, detener y reconfigurar servicios en todo el clúster o en nodos específicos.
- Monitorizar un clúster Hadoop:
- Ofrece cuadros de mando para visualizar la salud y el estado del clúster.
- Permite definir alertas y notificaciones basadas en condiciones (e.g., nodo caído, poco espacio en disco).
La interfaz de Ambari presenta una pantalla inicial con métricas clave del clúster. El menú lateral permite navegar por servicios, hosts, alertas y otras acciones de administración.
- Servicios: Permite administrar cada componente (HDFS, YARN, etc.), ver su estado, modificar la configuración (con vistas simplificadas y avanzadas), acceder a métricas y realizar acciones como parar o reiniciar el servicio. También proporciona enlaces a las consolas de administración nativas de cada servicio.
- Hosts: Muestra el estado de cada servidor individual en el clúster, incluyendo IP, memoria disponible, uso de disco, uso de CPU y servicios en ejecución. Permite ver el detalle de los servicios en cada host, su estado y realizar acciones sobre ellos (parar, reiniciar, mover). También permite añadir servicios a un host.
- Alertas: Muestra un listado de comprobaciones periódicas y cualquier fallo detectado.
- Administración del clúster: Permite gestionar componentes y versiones, usuarios de sistema operativo de los servicios y el arranque automático de los servicios.
Un ejemplo práctico muestra cómo Hadoop se sobrepone a la parada de nodos worker utilizando Ambari para simular una caída y observar la continuidad del servicio (consultas Hive).
La autoevaluación confirma que Ambari simplifica la instalación de clústeres, permite definir alertas y ofrece métricas como el porcentaje de CPU, memoria y disco utilizados en los servidores.
9. Cloudera Manager
Cloudera Manager fue la primera herramienta de administración de Hadoop, desarrollada por Cloudera e incluida en su distribución CDH. Aunque Apache Ambari surgió posteriormente, la adquisición de Hortonworks por Cloudera ha llevado a la discontinuación de Ambari, siendo Cloudera Manager la principal herramienta de administración en la distribución comercial de Hadoop de Cloudera.
Se destaca que Cloudera Manager y Apache Ambari son muy similares en cuanto a funcionalidad, ofreciendo capacidades de instalación, administración y monitorización con interfaces de usuario prácticamente idénticas.
La organización del menú en Cloudera Manager también separa los servicios (denominados «Clústeres») de los servidores («Hosts»). La interfaz principal muestra un resumen de los servicios y métricas.
Al seleccionar un servicio (e.g., Hive, HDFS), se accede a pantallas con información general del estado, historial, métricas, instancias (servidores donde se despliega el servicio), configuración (con opciones para ver y modificar parámetros) y un botón de «Acciones» para gestionar el servicio.
La sección de «Hosts» muestra los servidores del clúster, y al seleccionar uno, se pueden ver los servicios que ejecuta, su estado y realizar acciones. También ofrece opciones de configuración y alertas a nivel de host.
Otras opciones de menú incluyen un historial de actividad reciente, la posibilidad de generar cuadros de mando personalizados («Gráficos») y opciones de administración (usuarios, versiones, etc.).
La autoevaluación confirma que Cloudera Manager permite arrancar y parar los servicios del clúster y es una herramienta de trabajo para los administradores de sistemas.
10. Ganglia
Ganglia es una herramienta opensource para la recogida y monitorización de métricas de sistemas, no específica para Hadoop, pero que puede ser útil cuando Ambari o Cloudera Manager no están disponibles.
Ganglia se ejecuta en los nodos del clúster, recogiendo métricas que Hadoop puede enviar o que Ganglia puede obtener directamente del sistema operativo. Puede integrarse con Nagios para crear un sistema de alertas.
La arquitectura de Ganglia incluye:
- gmond: Demonio en cada nodo que recopila métricas.
- gmetad: Demonio que sondea los nodos para obtener métricas y crea tablas RRD para almacenarlas.
- RRDtool: Almacena los datos de métricas.
- gweb: Interfaz web (PHP sobre Apache) para visualizar las métricas a través de gráficos y cuadros de mando personalizados.
La interfaz web de Ganglia (gweb) muestra métricas agregadas del clúster y permite seleccionar nodos individuales para ver sus métricas. Los gráficos ofrecen la opción de exportar datos (CSV, JSON) y definir umbrales para alertas. La función de «Search» permite buscar por nodos o métricas. Ganglia permite crear cuadros de mando personalizados comparando diferentes métricas de los nodos.
A pesar de ser un buen sistema de monitorización, se indica que en clústeres con Ambari o Cloudera Manager, estas herramientas suelen reemplazar por completo a Ganglia al ofrecer funcionalidades de administración además de monitorización en una única plataforma.
La autoevaluación destaca las diferencias entre Ganglia y Ambari/Cloudera Manager: Ganglia no permite modificar parámetros de configuración de Hadoop ni realizar acciones como parar servicios o nodos, mientras que Ambari y Cloudera Manager sí lo hacen. Ambas herramientas ofrecen métricas de uso de CPU en los nodos.
11. Guía Práctica de Spark en Databricks
Finalmente, se introduce una guía práctica para usar Spark en Databricks, un clúster de Spark en la nube. Se requiere una cuenta «community» gratuita para probarlo. Se proporciona un «notebook» de Databricks que debe importarse en el espacio de trabajo para seguir la guía, que consta de varios libros («ASP 1», «ASP 2», «ASP3»). Se menciona un vídeo que explica el proceso de importación y el contenido de los libros.
Conclusión:
El material revisado proporciona una introducción detallada a la administración y monitorización de sistemas Hadoop. A través del caso práctico del Banco Español de Inversiones, se contextualizan los desafíos y la importancia de estas tareas. Se presentan las herramientas clave disponibles, desde las interfaces nativas de HDFS y YARN hasta soluciones más completas como Apache Ambari y Cloudera Manager, así como una alternativa de monitorización general como Ganglia. Se aborda la configuración de los principales componentes de Hadoop y la necesidad de monitorizar el sistema operativo subyacente. Finalmente, se introduce una guía práctica para trabajar con Spark en Databricks, extendiendo el alcance del material a la explotación de datos en un entorno Hadoop.
Final del formulario
Guía de Estudio: Administración y Monitorización de Sistemas Hadoop
Quiz
- Describe brevemente el cambio estratégico del Banco Español de Inversiones y cómo esto llevó a la implementación de una plataforma Hadoop. (2-3 frases)
El BEI, tradicionalmente enfocado en el conocimiento interno, decidió incorporar tecnología Big Data para mejorar la toma de decisiones con modelos predictivos y ofrecer funcionalidades en diversos canales. Esto condujo a la implementación de una plataforma Hadoop para centralizar los datos del mainframe y CRM.
- ¿Cuáles son los tres tipos principales de actividades para la administración de una plataforma Hadoop? En este tema, ¿en cuál se centra la discusión y por qué? (2-3 frases)
Los tres tipos de actividades son la configuración, la operación de los servicios y la monitorización. Este tema se centra en la monitorización, ya que la configuración es más estática y la operación de servicios consiste en tareas sencillas de arranque, parada o reinicio.
- Menciona dos ficheros de configuración importantes para Hadoop core (HDFS y YARN) y describe brevemente una propiedad clave configurada en cada uno. (2-3 frases)
hdfs-site.xml configura propiedades específicas de HDFS como dfs.namenode.name.dir (directorio local del Namenode). yarn-site.xml configura propiedades específicas de YARN como yarn.resourcemanager.scheduler.class (tipo de scheduler utilizado).
- Explica por qué es crucial monitorizar las métricas de los sistemas operativos Linux subyacentes a un clúster Hadoop. (2-3 frases)
Es importante monitorizar las métricas de Linux porque Hadoop se ejecuta sobre él, utilizando sus recursos de memoria y procesador. Además, Hadoop implica la ejecución de muchos servicios en la misma máquina, lo que podría generar conflictos visibles a nivel del sistema operativo.
- ¿Qué tipo de información principal se puede obtener al acceder a la interfaz web de administración de HDFS (Namenode UI)? Menciona al menos dos ejemplos. (2-3 frases)
El Namenode UI permite monitorizar el estado general de HDFS, incluyendo información sobre los Datanodes (su estado, capacidad y uso de disco) y visualizar el contenido de HDFS, así como acceder a los logs.
- Describe la utilidad principal de la interfaz web de administración de YARN (ResourceManager UI) en la gestión de un clúster Hadoop con múltiples usuarios y aplicaciones. (2-3 frases)
El ResourceManager UI permite a los administradores monitorizar las aplicaciones que se están ejecutando en el clúster, ver el estado de los recursos del sistema y analizar el detalle y los logs de cada aplicación para identificar posibles cuellos de botella o errores.
- ¿Cuáles son las tres funcionalidades principales que Apache Ambari ofrece para la administración de clústeres Hadoop? (2-3 frases)
Apache Ambari simplifica la administración de Hadoop ofreciendo funcionalidades para la instalación de clústeres, la administración de servicios (arrancar, parar, reconfigurar) y la monitorización a través de cuadros de mando y alertas.
- Aunque Cloudera Manager y Apache Ambari son similares, ¿qué evento en la industria Hadoop llevó a que Cloudera Manager se convirtiera en la herramienta predominante? (2-3 frases)
La compra de Hortonworks por parte de Cloudera y la posterior discontinuación de Apache Ambari como herramienta principal en la única distribución comercial de Hadoop hicieron que Cloudera Manager se convirtiera en la herramienta predominante.
- Explica la arquitectura básica de Ganglia, mencionando sus dos demonios principales y sus funciones. (2-3 frases)
La arquitectura de Ganglia incluye gmond, un demonio que se ejecuta en cada nodo para recopilar métricas, y gmetad, un demonio que sondea los nodos para obtener estas métricas y las almacena utilizando RRDtool para su visualización a través de la interfaz web gweb.
- ¿Cuál es la principal limitación de Ganglia en comparación con herramientas como Apache Ambari o Cloudera Manager en la administración integral de un clúster Hadoop? (2-3 frases)
La principal limitación de Ganglia es que se centra principalmente en la monitorización de métricas del sistema y de Hadoop, pero no ofrece funcionalidades integradas para la administración del clúster, como la configuración de servicios, el reinicio o la gestión de nodos, a diferencia de Ambari o Cloudera Manager.
Preguntas de Ensayo
- El Banco Español de Inversiones pasó de una arquitectura basada en mainframe a una plataforma Hadoop. Describe los principales motivadores de este cambio y los beneficios esperados, según el caso práctico.
- Compara y contrasta las funcionalidades de monitorización ofrecidas por las interfaces web nativas de HDFS (Namenode UI) y YARN (ResourceManager UI) con las capacidades más amplias de herramientas como Apache Ambari o Cloudera Manager.
- Analiza la importancia de la monitorización en la administración de un sistema Hadoop. ¿Qué aspectos críticos deben supervisarse a nivel del sistema operativo y a nivel de los servicios de Hadoop, y por qué?
- Describe el papel de herramientas de administración como Apache Ambari o Cloudera Manager en el ciclo de vida de un clúster Hadoop, desde su instalación y configuración inicial hasta su operación y mantenimiento continuo.
- Evalúa la utilidad de una herramienta de monitorización genérica como Ganglia en un entorno Hadoop que ya cuenta con herramientas de administración específicas como Cloudera Manager. ¿En qué escenarios podría Ganglia seguir siendo relevante o complementario?
Glosario de Términos Clave
- Hadoop: Un framework de código abierto utilizado para el almacenamiento y procesamiento distribuido de grandes conjuntos de datos a través de clústeres de computadoras.
- HDFS (Hadoop Distributed File System): El sistema de archivos distribuido utilizado por Hadoop para almacenar grandes cantidades de datos de manera confiable y tolerante a fallos.
- YARN (Yet Another Resource Negotiator): El administrador de recursos en Hadoop, responsable de gestionar los recursos del clúster y programar las aplicaciones.
- Namenode: El nodo maestro en HDFS que gestiona el espacio de nombres del sistema de archivos y los metadatos de los archivos. Su interfaz web de administración se conoce como Namenode UI.
- Datanode: Los nodos trabajadores en HDFS que almacenan los bloques de datos reales.
- ResourceManager: El nodo maestro en YARN que gestiona los recursos del clúster y coordina la ejecución de las aplicaciones. Su interfaz web de administración se conoce como ResourceManager UI.
- NodeManager: Los nodos trabajadores en YARN que gestionan los contenedores en los que se ejecutan las tareas de las aplicaciones.
- MapReduce: Un modelo de programación y un motor de procesamiento de datos asociado con Hadoop, utilizado para procesar grandes conjuntos de datos en paralelo.
- Hive: Un almacén de datos construido sobre Hadoop que proporciona una interfaz similar a SQL para consultar y analizar datos almacenados en HDFS.
- Spark: Un framework de procesamiento de datos en clúster de código abierto que ofrece procesamiento en memoria, lo que lo hace más rápido que MapReduce para ciertos tipos de cargas de trabajo.
- Apache Ambari: Una herramienta de código abierto diseñada para simplificar la administración y monitorización de clústeres Hadoop.
- Cloudera Manager: Una herramienta propietaria de Cloudera para la administración, monitorización y gestión de clústeres Hadoop.
- Ganglia: Una herramienta de código abierto para la monitorización de sistemas computacionales de alto rendimiento, como clústeres de servidores.
- Monitorización: El proceso de observar y registrar el rendimiento y la salud de un sistema para identificar problemas y garantizar su correcto funcionamiento.
- Configuración: El proceso de establecer los parámetros y las propiedades de un sistema o componente para definir su comportamiento.
- Logs: Archivos que registran eventos, mensajes o errores que ocurren en un sistema o aplicación, útiles para el diagnóstico y la monitorización.
- Métricas: Datos cuantitativos que se recopilan y se utilizan para medir el rendimiento y el estado de un sistema (por ejemplo, uso de CPU, memoria utilizada, espacio en disco).
Mapa Conceptual
Preguntas Frecuentes sobre Hadoop: Administración, Monitorización y Caso de Uso
¿Por qué el Banco Español de Inversiones (BEI) decidió implementar una plataforma Hadoop?
El BEI, tradicionalmente enfocado en el conocimiento interno de sus expertos para la banca privada, decidió invertir en tecnologías Big Data e implementó una plataforma Hadoop. Esto se debió a una nueva estrategia del consejo de administración que buscaba incorporar la tecnología para ayudar a los clientes y a sus expertos a tomar mejores decisiones mediante modelos predictivos, así como para ofrecer funcionalidades a través de diversos canales (web, móvil, oficinas). La plataforma Hadoop se nutrió de los datos volcados desde el mainframe y el CRM del banco, permitiendo a los científicos de datos desarrollar modelos predictivos y a los analistas de negocio cruzar cualquier dato disponible, algo que antes era imposible debido a la inaccesibilidad de la información.
¿Cuáles son los principales desafíos en la administración de un sistema Hadoop?
La administración de un sistema Hadoop presenta varios desafíos. En primer lugar, su amplio ecosistema de componentes, cada uno con su propio funcionamiento, versión, ficheros de configuración y métricas de monitorización, añade complejidad. En segundo lugar, se ejecuta en un entorno distribuido, compuesto por un número potencialmente grande de servidores, cada uno con su propio sistema operativo y hardware susceptible a fallos. Finalmente, Hadoop es una plataforma con un nivel de madurez inferior a otras soluciones más establecidas, lo que implica una documentación menos extensa y herramientas de administración menos consolidadas.
¿Qué herramientas proporciona Hadoop para facilitar la administración y monitorización de la plataforma?
Hadoop ofrece varias herramientas para la administración y monitorización. Incluye las consolas de monitorización web de HDFS (Namenode UI) y YARN (ResourceManager UI), que proporcionan una visión general del estado de cada servicio y permiten acceder a información detallada como logs. Además, existen herramientas más potentes y fáciles de usar como Apache Ambari y Cloudera Manager, que ofrecen funcionalidades como visualización de cuadros de mando, creación de alarmas, modificación de la configuración y administración de usuarios. Finalmente, Ganglia es una herramienta opensource útil para la monitorización general de clústeres de servidores, aunque no es específica de Hadoop.
¿Qué información principal se puede obtener a través de la interfaz web del Namenode (Namenode UI)?
La interfaz web del Namenode (Namenode UI), accesible por defecto en el puerto 50070, ofrece una visión general del estado de HDFS. Permite ver información sobre los Datanodes, como su dirección IP, el último mensaje de «check», la capacidad y el uso de disco. Al seleccionar un Datanode específico, se puede ver el detalle de los bloques que contiene y su ubicación en el disco local. La interfaz también muestra información sobre fallos en los discos de los Datanodes, snapshots de la estructura de HDFS (si se han creado), el progreso del arranque de HDFS y utilidades para visualizar el contenido de HDFS, ver logs y obtener un volcado de los hilos en ejecución.
¿Qué funcionalidades ofrece la interfaz web del ResourceManager (ResourceManager UI) para la gestión de aplicaciones en YARN?
La interfaz web del ResourceManager (ResourceManager UI) permite monitorizar las aplicaciones que se ejecutan en el clúster YARN. En la pantalla principal se muestra un resumen del sistema. La opción «Nodes» proporciona información sobre los nodos worker, incluyendo su estado y los recursos utilizados y disponibles. En «Applications», se pueden ver las aplicaciones en ejecución y las ya finalizadas, con la posibilidad de consultar el detalle de ejecución de cada una, incluyendo el usuario que la lanzó, los nodos en los que se ejecutó y los logs. La sección «Scheduler» muestra el estado de las colas de ejecución configuradas en YARN, indicando su capacidad y ocupación. Finalmente, la opción «Tools» ofrece utilidades para ver la configuración de YARN, los ficheros de log y los hilos de ejecución.
¿Cuáles son las principales ventajas de utilizar Apache Ambari o Cloudera Manager para la administración de Hadoop en comparación con las interfaces web nativas?
Apache Ambari y Cloudera Manager ofrecen ventajas significativas sobre las interfaces web nativas de HDFS y YARN. Permiten una administración unificada de todo el clúster, incluyendo la instalación, configuración, gestión (arranque, parada, reinicio de servicios y nodos) y monitorización. Proporcionan cuadros de mando personalizables con métricas clave, la capacidad de definir alertas y notificaciones ante condiciones específicas (como fallos de nodos o bajo espacio en disco), y una gestión visual de la configuración de los diferentes servicios. Además, Ambari dispone de una API para la automatización de tareas de administración. Cloudera Manager, aunque similar en funcionalidad, es la herramienta principal en la distribución de Cloudera, tras la discontinuación de Ambari.
¿Cómo puede Ganglia complementar o ser reemplazado por herramientas como Ambari o Cloudera Manager en la monitorización de un clúster Hadoop?
Ganglia es una herramienta opensource de monitorización de clústeres, no específica de Hadoop, que puede recopilar métricas del sistema operativo de los nodos (CPU, memoria, disco, red) y presentar vistas agregadas y personalizadas a través de una interfaz web. En entornos donde Ambari o Cloudera Manager no están disponibles, Ganglia puede ser útil para monitorizar el estado general de los servidores que componen el clúster Hadoop. Sin embargo, en clústeres que utilizan Ambari o Cloudera Manager, estas herramientas generalmente reemplazan por completo a Ganglia, ya que ofrecen funcionalidades de monitorización más integradas y específicas para los servicios de Hadoop, además de capacidades de administración que Ganglia no posee (como la modificación de la configuración o el control de los servicios).
¿Cuál es el propósito de Databricks mencionado en el contexto de Hadoop y Spark?
Databricks es mencionado como un clúster de Spark en la nube que se puede utilizar de forma gratuita para aprender y experimentar con Spark. Se proporciona una guía práctica en forma de «notebook» de Databricks para enseñar a los usuarios a utilizar Spark en este entorno. El objetivo es facilitar el aprendizaje práctico de Spark, una de las herramientas del ecosistema Hadoop utilizada para el procesamiento de datos, ofreciendo una plataforma accesible y gratuita para los usuarios.
Evaluación
Preguntas:
Aquí tienes un cuestionario de 20 preguntas sobre la administración y monitorización de sistemas Hadoop, con cuatro posibles respuestas por pregunta y una tabla final con la respuesta correcta y una breve explicación basada en las fuentes proporcionadas:
Preguntas:
- ¿Cuál fue la motivación principal del Banco Español de Inversiones (BEI) para adoptar una plataforma Hadoop?
a) Reemplazar su sistema mainframe obsoleto.
b) Reducir los costos de infraestructura de IT.
c) Incorporar tecnología Big Data para ayudar a clientes y expertos a tomar mejores decisiones.
d) Mejorar la seguridad de sus datos financieros. - ¿Qué rol desempeña María Robles en el caso práctico presentado en las fuentes?
a) Científica de datos del BEI.
b) Analista de negocio encargada de visualización de datos.
c) Responsable de IT del Banco Español de Inversiones.
d) Consejera del consejo de administración del BEI. - ¿Cuál es una de las principales razones por las que Hadoop requiere un mayor esfuerzo de monitorización o administración?
a) Su documentación es muy extensa y compleja.
b) Se ejecuta en un único servidor de gran capacidad.
c) Tiene un amplio ecosistema de componentes desarrollados de forma independiente.
d) Su base instalada es muy grande y estable. - ¿Cuáles son las consolas de monitorización que ofrece Hadoop por defecto para HDFS y YARN, respectivamente?
a) Ambari UI y Cloudera Manager UI.
b) Ganglia Web y ResourceManager UI.
c) Namenode UI y ResourceManager UI.
d) HDFS Manager y YARN Manager. - ¿Qué tipo de información principal se puede obtener al acceder a la pestaña «Datanodes» en la Namenode UI?
a) Los logs de las aplicaciones ejecutadas en HDFS.
b) Información sobre los diferentes Datanodes, como su IP, estado y uso de disco.
c) La configuración del fichero hdfs-site.xml.
d) Los errores de disco detectados en todo el clúster. - ¿Qué parámetro del fichero de configuración hdfs-site.xml define la dirección en la que se arranca la consola web de monitorización de HDFS?
a) fs.defaultFS.
b) dfs.datanode.data.dir.
c) dfs.namenode.http-address.
d) fs.namenode.name.dir. - ¿Qué información principal se puede visualizar en la opción «Applications» del ResourceManager UI?
a) El estado de los Datanodes y su capacidad.
b) Las colas de ejecución configuradas en YARN y su capacidad.
c) Las aplicaciones que se han ejecutado o se están ejecutando en el clúster.
d) El uso de CPU y memoria de los Nodos worker. - ¿Qué funcionalidad principal ofrece la opción «Scheduler» dentro del ResourceManager UI?
a) Permite ver el detalle de ejecución de cada aplicación.
b) Muestra el estado de las colas de ejecución configuradas en YARN.
c) Permite acceder a los logs generados por las aplicaciones.
d) Muestra los recursos utilizados y disponibles en cada Nodo worker. - ¿Cuál es el objetivo principal de Apache Ambari?
a) Ejecutar modelos predictivos en la plataforma Hadoop.
b) Simplificar la administración de Hadoop para el aprovisionamiento, la administración y la monitorización de clústeres.
c) Desarrollar aplicaciones Big Data utilizando Spark y Hive.
d) Analizar datos del mainframe y CRM mediante herramientas de visualización. - ¿Qué tipo de acciones permite realizar Apache Ambari sobre los servicios de Hadoop en un clúster?
a) Únicamente monitorizar el estado y las métricas de rendimiento.
b) Instalar, iniciar, detener y reconfigurar los servicios en todo el clúster.
c) Solo instalar nuevos componentes del ecosistema Hadoop.
d) Principalmente gestionar los usuarios y permisos de acceso a los datos. - ¿Qué tipo de información se presenta en la pantalla inicial (cuadro de mando general) de Apache Ambari?
a) Un listado detallado de todos los ficheros almacenados en HDFS.
b) Las principales métricas del clúster, como el uso de HDFS, CPU, memoria y el estado de los nodos.
c) La configuración detallada de todos los servicios de Hadoop.
d) Los logs de todas las aplicaciones que se están ejecutando en YARN. - Dentro de Apache Ambari, ¿dónde se pueden modificar los parámetros de configuración de un servicio como HDFS?
a) En la pestaña «Metrics» de la sección del servicio.
b) En la pestaña «Hosts» seleccionando un servidor específico.
c) En la pestaña «Configuration» dentro de la sección del servicio.
d) En la opción «Administration del clúster» del menú principal. - ¿Qué herramienta de administración de Hadoop fue desarrollada por Cloudera e incluida en su distribución CDH desde 2009?
a) Apache Ambari.
b) Ganglia.
c) Cloudera Manager.
d) Namenode UI. - ¿En qué se asemejan principalmente Apache Ambari y Cloudera Manager?
a) En su arquitectura técnica interna y los lenguajes de programación utilizados.
b) En la forma en que gestionan la seguridad y autenticación del clúster.
c) En su capacidad de instalación, administración y monitorización de clústeres, así como en su interfaz de usuario.
d) En el soporte para la ejecución de diferentes motores de procesamiento como MapReduce, Tez y Spark. - Dentro de Cloudera Manager, ¿cómo se denominan generalmente los servicios instalados en el clúster en el menú principal?
a) Hosts.
b) Clústeres.
c) Servicios.
d) Componentes. - ¿Cuál es el propósito principal de Ganglia?
a) Administrar la configuración de los servicios de Hadoop.
b) Recopilar métricas de un sistema y su monitorización, siendo útil para cualquier tipo de clúster.
c) Desplegar e instalar clústeres Hadoop de forma automatizada.
d) Analizar logs de las aplicaciones que se ejecutan en Hadoop. - ¿Cuál es el demonio que se ejecuta en cada nodo del clúster en la arquitectura de Ganglia y se encarga de recopilar los datos de métricas?
a) gmetad.
b) gweb.
c) gmond.
d) RRDtool. - ¿Qué componente de Ganglia proporciona la interfaz web para visualizar las métricas recopiladas?
a) gmond.
b) gmetad.
c) RRDtool.
d) gweb. - ¿Qué limitaciones importantes presenta Ganglia en comparación con herramientas como Ambari o Cloudera Manager para la gestión de Hadoop?
a) Ganglia consume muchos más recursos del sistema que Ambari o Cloudera Manager.
b) Ganglia no permite monitorizar métricas de CPU, memoria o disco.
c) Ganglia no permite modificar la configuración de Hadoop ni realizar acciones como parar servicios o nodos.
d) Ganglia solo puede monitorizar clústeres pequeños con un número limitado de nodos. - ¿Para qué se puede utilizar la Namenode UI, según las fuentes?
a) Para administrar los usuarios y permisos en HDFS.
b) Para reiniciar los servicios de HDFS.
c) Para monitorizar el estado de HDFS, ver información de los Datanodes y el contenido de HDFS.
d) Para configurar los parámetros de HDFS.
Tabla de Respuestas y Explicaciones:
Número de Pregunta | Respuesta Correcta | Explicación |
1 | c) | El BEI adoptó Hadoop para incorporar tecnología Big Data que ayudara a sus clientes y expertos con modelos predictivos y funcionalidades en diversos canales. |
2 | c) | María Robles es la responsable de IT del Banco Español de Inversiones, encargada de manejar el clúster Hadoop. |
3 | c) | Hadoop requiere mayor esfuerzo de administración debido a su amplio ecosistema de componentes independientes y su naturaleza de entorno distribuido. |
4 | c) | Las consolas de monitorización por defecto para HDFS y YARN son Namenode UI y ResourceManager UI respectivamente. |
5 | b) | La pestaña «Datanodes» en la Namenode UI muestra información sobre los diferentes Datanodes, incluyendo su IP, estado del último check y uso de disco. |
6 | c) | El parámetro **dfs.namenode.http-address** en el fichero hdfs-site.xml configura la dirección de la consola web de monitorización de HDFS. |
7 | c) | La opción «Applications» del ResourceManager UI permite ver las aplicaciones que se han ejecutado o se están ejecutando en el clúster. |
8 | b) | La opción «Scheduler» dentro del ResourceManager UI muestra el estado de las colas de ejecución configuradas en YARN, incluyendo su capacidad y ocupación. |
9 | b) | El objetivo principal de Apache Ambari es simplificar la administración de Hadoop para el aprovisionamiento, administración y monitorización de clústeres. |
10 | b) | Apache Ambari permite instalar, iniciar, detener y reconfigurar los servicios de Hadoop en todo el clúster y sus nodos. |
11 | b) | La pantalla inicial de Apache Ambari presenta un cuadro de mando general con las principales métricas del clúster, como uso de HDFS, CPU, memoria y estado de los nodos. |
12 | c) | Dentro de Apache Ambari, los parámetros de configuración de un servicio como HDFS se pueden modificar en la pestaña «Configuration» de la sección correspondiente al servicio. |
13 | c) | Cloudera Manager fue desarrollado por Cloudera e incluido en su distribución CDH desde 2009. |
14 | c) | Apache Ambari y Cloudera Manager se asemejan en su capacidad de instalación, administración y monitorización de clústeres, así como en su interfaz de usuario. |
15 | b) | En el menú principal de Cloudera Manager, los servicios instalados en el clúster generalmente se denominan «Clústeres«. |
16 | b) | El propósito principal de Ganglia es la recogida y monitorización de métricas de sistemas, siendo útil para cualquier tipo de clúster. |
17 | c) | En la arquitectura de Ganglia, gmond es el demonio que se ejecuta en cada nodo para recopilar las métricas. |
18 | d) | gweb es el componente de Ganglia que proporciona la interfaz web para visualizar las métricas recopiladas. |
19 | c) | Ganglia, a diferencia de Ambari o Cloudera Manager, no permite modificar la configuración de Hadoop ni realizar acciones como parar servicios o nodos. |
20 | c) | Según las fuentes, la Namenode UI se puede utilizar para monitorizar el estado de HDFS, ver información de los Datanodes y visualizar el contenido de HDFS. |
Recursos
- Guía Práctica BDA04
Guía de Estudio de la «Guía Práctica BDA04.mp4»
Esta guía de estudio se centra en los puntos clave cubiertos en el vídeo «Guía Práctica BDA04.mp4» sobre el uso de Apache Spark en Databricks.
Introducción a Apache Spark:
- Apache Spark es una herramienta fundamental en el ecosistema Hadoop, aunque no es MapReduce.
- Se destaca por su velocidad superior a Hadoop al realizar operaciones preferentemente en memoria en lugar de en disco en los pasos intermedios.
- Es una herramienta muy popular y con alta demanda en el mercado laboral de Big Data.
Entorno de Trabajo: Databricks:
- Se utilizará Databricks Community Edition, una plataforma cloud gratuita (aunque con recursos y opciones limitadas) para trabajar con Apache Spark.
- Databricks pertenece al cloud Azure de Microsoft.
Notebooks de Databricks:
- Databricks utiliza notebooks basados en Apache Zeppelin, con extensión .dbc, a diferencia de los notebooks de Jupyter.
- Permiten la organización en carpetas con subcarpetas y libros.
- Se pueden importar notebooks desde una URL o desde un fichero.
Clusters en Databricks:
- Los notebooks necesitan estar conectados a un cluster de Spark.
- Los clusters se pueden crear desde la interfaz de Compute o automáticamente al ejecutar una celda de código.
- En la versión Community, los clusters inactivos se paran automáticamente después de un tiempo (aproximadamente 20 minutos) y no se pueden reiniciar; es necesario crear uno nuevo.
- La información persistente debe guardarse en el sistema de ficheros de Databricks, no en el cluster.
Comandos y Librerías Clave:
- dbutils: Librería específica de Databricks con utilidades diversas.
- display y displayHTML: Comandos específicos de Databricks para mostrar información formateada y HTML, respectivamente.
- Comandos mágicos: Permiten ejecutar código en diferentes lenguajes dentro de un mismo notebook (e.g., %python, %sql, %scala, %r).
- %fs: Comando mágico para interactuar con el Databricks File System (DBFS). Subcomandos importantes:
- ls: Listar directorios.
- head: Mostrar las primeras líneas de un fichero.
- less: Mostrar contenido de un fichero (paginado).
- put: Escribir contenido en un fichero.
- help: Obtener ayuda sobre los comandos.
- %run: Comando mágico para ejecutar otro notebook desde el actual.
Databricks File System (DBFS):
- DBFS es el sistema de ficheros distribuido de Databricks, diferente de HDFS.
- Se puede acceder a través del comando mágico %fs o mediante la librería dbutils.fs en Python.
- Permite subir ficheros directamente desde la interfaz.
Spark SQL y DataFrames:
- Se introduce el uso de Spark SQL para consultar datos.
- Se menciona la Spark Session (Spark), el punto de entrada para trabajar con Spark.
- Se diferencia entre transformaciones (operaciones que crean un nuevo DataFrame de forma lazy) y acciones (operaciones que desencadenan la computación y devuelven un resultado).
- Ejemplos de transformaciones: select, where, orderBy.
- Ejemplos de acciones: display, count, collect, show, first, head, take.
- Los DataFrames son tablas con un esquema definido (df.schema, df.printSchema()).
- Se pueden crear vistas temporales (df.createOrReplaceTempView) para ejecutar consultas SQL sobre DataFrames.
Lectura y Escritura de Datos:
- Se explica cómo leer ficheros CSV utilizando el objeto spark.read.csv() o spark.read.format(«csv»).options(…).
- Opciones importantes al leer CSV: sep (separador), header (si la primera línea es la cabecera), inferSchema (inferir el tipo de datos).
- Se puede especificar el esquema de los datos de forma programática.
Operaciones con Columnas:
- Diferentes formas de acceder a columnas de un DataFrame:
- Notación de punto (df.nombre_columna).
- Notación de corchetes (df[«nombre_columna»]). Útil para nombres con espacios o caracteres especiales.
- Función col() de pyspark.sql.functions. Permite realizar operaciones más complejas.
- Ejemplos de operaciones con columnas: aritméticas, comparación, renombrar (alias), cambiar tipo (cast), verificar nulos (isNull), ordenar (sort, desc), concatenar (concat).
- withColumn(): Permite añadir una nueva columna o reemplazar una existente.
Agregaciones:
- groupBy(): Agrupa las filas según los valores de una o más columnas.
- Funciones de agregación: count(), avg(), sum().
- Uso de pyspark.sql.functions.agg() para aplicar funciones de agregación y renombrar las columnas resultantes.
- Otras funciones de agregación como approx_count_distinct().
Funciones de Fecha y Timestamp:
- Funciones para trabajar con fechas y marcas de tiempo disponibles en pyspark.sql.functions: unix_timestamp(), from_unixtime(), date_format(), year(), month(), dayofweek(), minute(), second(), toDate(), date_add().
Trabajo con Estructuras Complejas:
- explode(): Convierte los elementos de un array (o map) en filas separadas, duplicando el resto de las columnas.
- split(): Divide una cadena en un array de substrings según un delimitador.
- element_at(): Accede a un elemento específico de un array (indexado desde 1).
Otras Funciones:
- lit(): Crea una columna con un valor literal constante.
- coalesce(): Devuelve el primer valor no nulo de una lista de columnas.
- isnull(): Verifica si un valor es nulo.
- rand(): Genera una columna con valores aleatorios.
- drop(): Elimina columnas.
- fillna(): Reemplaza valores nulos con un valor especificado.
Joins:
- join(): Combina dos DataFrames.
- Tipos de joins: inner, left, right, outer.
- Se debe especificar la columna (o columnas) sobre la que se realiza el join.
User Defined Functions (UDFs):
- Permiten definir funciones personalizadas en Python y utilizarlas en Spark.
- Se registran utilizando @udf del módulo pyspark.sql.functions, especificando el tipo de retorno.
- También se pueden registrar para ser utilizadas en consultas SQL (spark.udf.register()).
- Pandas UDFs (@pandas_udf) ofrecen un mejor rendimiento en algunos casos al trabajar con Pandas Series para entrada y salida. Requieren type hints.
Preguntas Frecuentes (FAQ) de «Guía Práctica BDA04.mp4»
- ¿Qué es Apache Spark y por qué se considera más rápido que Hadoop?
- Apache Spark es un motor de procesamiento de datos en memoria, lo que le permite ser más rápido que Hadoop MapReduce, que depende en gran medida del disco para las operaciones intermedias.
- ¿Cómo puedo empezar a usar Spark de forma gratuita?
- Puede utilizar la Databricks Community Edition, que proporciona un entorno Spark en la nube con recursos limitados pero suficiente para aprender y experimentar.
- ¿Qué son los notebooks de Databricks y en qué se diferencian de los de Jupyter?
- Los notebooks de Databricks están basados en Apache Zeppelin y utilizan la extensión .dbc. A diferencia de Jupyter, permiten una mejor organización con carpetas y subcarpetas dentro del mismo fichero comprimido.
- ¿Qué debo tener en cuenta al usar clusters en Databricks Community Edition?
- Los clusters inactivos se detienen automáticamente después de un tiempo corto y no se pueden reiniciar en la versión gratuita. Es importante guardar el trabajo en DBFS.
- ¿Qué es DBFS y cómo puedo interactuar con él?
- DBFS (Databricks File System) es el sistema de ficheros distribuido de Databricks. Puede interactuar con él utilizando el comando mágico %fs o la librería dbutils.fs en Python.
- ¿Cuál es la diferencia entre transformaciones y acciones en Spark?
- Las transformaciones son operaciones que definen cómo se deben transformar los datos pero no se ejecutan inmediatamente (lazy evaluation). Las acciones son operaciones que desencadenan la ejecución de las transformaciones y devuelven un resultado.
- ¿Cómo puedo leer un fichero CSV en Spark y especificar sus propiedades?
- Puede usar spark.read.csv() y configurar opciones como el separador (sep), si tiene cabecera (header) y si Spark debe inferir el esquema (inferSchema).
- ¿Cómo puedo crear una nueva columna en un DataFrame basada en operaciones en otras columnas?
- Utilice la función withColumn(), especificando el nombre de la nueva columna y la expresión para calcular sus valores.
- ¿Qué son las UDFs y cuándo debería crearlas?
- Las UDFs (User Defined Functions) son funciones personalizadas que puede escribir en Python para realizar lógica que no está disponible en las funciones integradas de Spark. Debe usarlas con moderación, ya que pueden ser menos eficientes que las funciones nativas.
- ¿Qué son las Pandas UDFs y por qué podrían ser más eficientes?
- Las Pandas UDFs utilizan Pandas Series para la entrada y salida de datos, lo que permite a Spark optimizar mejor la ejecución en algunos casos y aprovechar la eficiencia de las funciones de Pandas.