50% de descuento en todos los planes, por tiempo limitado. Desde $2.48/mo
13 min restantes
Bases de datos y análisis

Cómo instalar Hadoop en Ubuntu: guía completa

Pío Bodenmann By Pío Bodenmann 13 min de lectura Actualizado el 1 de mayo de 2024
cómo instalar hadoop en ubuntu linux

Hoy en día, cuando una empresa o cualquier operación que involucre ordenadores crece hasta el punto de necesitar más de uno para gestionarla, recurrimos casi de inmediato a varios ordenadores conectados en red para distribuir la carga de trabajo de forma más eficiente. Esto se ha vuelto tan habitual que prácticamente todas las operaciones en áreas como la ciencia de datos se realizan mediante estos equipos en red. Sin duda, ejecutar tareas informáticas exigentes es más eficiente de esta manera, pero también es enormemente complejo: hay que configurar cada ordenador por separado y luego gestionar toda la red mientras procesa las tareas. Aquí es donde entran en juego programas como Hadoop.

Hadoop es un conjunto de herramientas y programas publicado por Apache que permite conectar en red varios equipos con mucha más eficiencia y facilidad. En este artículo repaso qué es Hadoop, analizo sus casos de uso, exploro sus ventajas e inconvenientes y ofrezco una visión general de su arquitectura avanzada, antes de pasar a una guía paso a paso sobre cómo instalar Hadoop en Ubuntu 20.04 para cerrar este tutorial de Hadoop 2024.

¿Qué es Apache Hadoop?

Hadoop, un conjunto de herramientas desarrollado por Apache, lleva más de 15 años transformando la configuración y el uso de redes. Los usuarios pueden sacar partido de la eficiencia en el uso de recursos de Hadoop, aprovechando su capacidad de cómputo actual para tareas exigentes sin necesidad de costosas actualizaciones. El conjunto consta de cuatro módulos: HDFS, YARN, MapReduce y Hadoop Common, cada uno diseñado para casos de uso específicos.

El punto fuerte de Hadoop es su capacidad para reunir los recursos computacionales existentes de personas y organizaciones en una sola unidad coordinada, capaz de afrontar retos de cómputo de gran envergadura. Sin Hadoop, esas mismas entidades se verían obligadas a invertir continuamente en máquinas cada vez más potentes.

Casos de uso de Hadoop

Ya sabemos qué es Hadoop. Pero ¿cómo se aplican sus casos de uso en el mundo real? Entender un programa en teoría está bien, pero no sustituye a ver su potencial en una operación real. A continuación presento algunos ejemplos antes de pasar al tutorial de Hadoop.

Análisis de riesgos

Como ya se ha mencionado, Hadoop permite combinar la potencia de varios sistemas informáticos como una sola unidad de red para procesar grandes volúmenes de datos y analizarlos más rápido de lo habitual. Toda empresa tiene riesgos que hay que analizar y calcular, y Hadoop resulta muy útil en ese contexto. Tanto es así que muchos hospitales de referencia lo utilizan para analizar los riesgos de distintos tratamientos y estimar los posibles resultados y estadísticas de sus operaciones para sus pacientes.

Detección de brechas de seguridad

A medida que crece el número de dispositivos conectados en una red o empresa, aumentan también los posibles puntos de vulnerabilidad a vigilar. Una de las utilidades clave de Hadoop es evaluar el conjunto de una operación analizando grandes volúmenes de datos e identificando los puntos débiles del sistema.

Mapeo de reseñas

Muchas empresas dependen de las reseñas de sus productos para mejorarlos o desarrollar nuevas estrategias de mercado. Mientras que un humano tardaría mucho tiempo en revisar un archivo de reseñas suficientemente amplio, Hadoop aprovecha la red de equipos para ofrecer resultados mucho más rápidos.

Análisis de mercado

Hablando de estrategias de mercado, el análisis de reseñas mencionado antes no es nada comparado con los recursos necesarios para estudiar el mercado y evaluar el potencial de un producto nuevo. Este es otro caso en el que Hadoop destaca: permite incluso a pequeñas empresas emergentes analizar el mercado con varios equipos de forma eficiente y en un tiempo razonable.

Análisis de archivos de registro

Otro aspecto que se complica a medida que una empresa crece es la cantidad de software que empieza a utilizar en todos los ámbitos. Usar cada vez más software genera más posibles errores y puntos de fallo, y requiere un empleado dedicado a gestionar los archivos de registro y resolver los problemas. Esto consume mucho tiempo, pero con unos sencillos protocolos, una empresa puede usar Hadoop para revisar y evaluar rápidamente los archivos de registro, localizar esos errores y eliminarlos.

Existen muchos otros casos de uso y aplicaciones de Hadoop, pero para mantener el foco en el objetivo del artículo, no los trataremos aquí.

Visión general de la arquitectura de Hadoop

Supongamos que ya conoces Hadoop, sus casos de uso y lo que hace. Y si no es así, este artículo ya te ha puesto al día. Ahora conviene conocer en profundidad de qué está compuesto realmente Hadoop y cómo interactúan sus distintas partes. Como se mencionó antes, Hadoop tiene cuatro capas principales. En esta parte del tutorial de Hadoop aprenderemos más sobre HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce y Hadoop Common. Sin embargo, dado que Hadoop Common no tiene demasiadas funciones que requieran explicación detallada, sus aspectos esenciales se conocen como Zookeeper. En esta sección intentaré explicar de forma sencilla la arquitectura avanzada de Hadoop, su ecosistema y sus cuatro componentes, antes de pasar a cómo instalar Hadoop en Ubuntu 20.04.

HDFS

HDFS en el ecosistema Hadoop constituye el sistema de almacenamiento general que utilizan todos los subsistemas y aplicaciones de Hadoop para acceder, transferir y guardar datos. El punto clave de la arquitectura HDFS es que, a diferencia del propio Hadoop, que es un programa de código abierto, HDFS es el sistema de archivos responsable de ejecutar todas las operaciones subyacentes de un único clúster de Hadoop. HDFS es un sistema de archivos muy resistente que divide los lotes de datos en bloques de 128 MB y los optimiza para operaciones basadas en secuencias.

La función principal de HDFS en el software Hadoop es proporcionar todos los datos como parte de un rack de datos global, que puede manipularse a través de distintos namenodes y racks secundarios en subsecciones para organizar la operación de análisis de datos. A continuación se pueden usar otras opciones como los racks Journal, QJM, HA, fsimage y los archivos de registro de edición, además del registro general, para hacer seguimiento y realizar otras tareas.

YARN

YARN es otro componente ejecutivo de Hadoop que se utiliza para asignar cantidades determinadas de recursos de cómputo a aplicaciones específicas dentro del ecosistema Hadoop. En esencia, permite usar un gestor de recursos para que los clientes asignen esos recursos a distintas tareas y aplicaciones a través de un conjunto de nodos. YARN también cuenta con un registro que, al igual que el de HDFS, permite hacer seguimiento de todos los recursos asignados y las operaciones en curso. YARN se divide en tres subsecciones: el Resource Manager, el Application Master y el Node Manager.

Cada una de estas tres subsecciones crea una nueva instancia de sí misma por clúster, aplicación y nodo, respectivamente. Con YARN no solo puedes asignar recursos a distintas tareas, sino también programar esos recursos para que cambien con el tiempo y dar lugar a flujos de trabajo algorítmicos avanzados. YARN no se limita a sus propias subsecciones: habrá muchas situaciones en las que lo usarás junto con otras capas arquitectónicas como HDFS y Zookeeper para asignar recursos y evaluar el conjunto de la operación.

Hadoop MapReduce

Hadoop MapReduce es otro componente principal del ecosistema Hadoop. Una vez que instalas Hadoop en Ubuntu, puedes usar esta función para analizar de forma distribuida un gran volumen de datos entre varios equipos. En esencia, Hadoop MapReduce funciona así: introduces un gran mapa de datos en el programa. Ese mapa se redistribuye, fragmenta y distribuye entre los equipos de la red. A continuación, mediante protocolos específicos conocidos como reducers, los datos se reducen a sus componentes esenciales. Cada una de estas operaciones se denomina Job.

Imaginemos que tienes una frase de tres palabras que actúa como el mapa de datos que quieres analizar con MapReduce. Supongamos que la frase es Oso Caza Conejo. Hadoop MapReduce descompondrá esa frase en tres lotes, cada uno con una palabra, y luego combinará esas palabras con entradas de datos similares de otros Jobs para crear un lote de datos final homogeneizado, con los datos innecesarios eliminados y listo para analizarse fácilmente.

Zookeeper

Zookeeper es otra subsección del ecosistema Hadoop que comenzó a cobrar protagonismo con el lanzamiento de Hadoop versión 2.0. La función principal de Zookeeper es coordinar las distintas operaciones que se ejecutan dentro de una misma instancia de Hadoop. Por eso, Zookeeper se usa casi siempre junto con el Resource Manager de YARN y las distintas funciones de HDFS en Hadoop. Su uso principal en estas operaciones es detectar y corregir los posibles puntos de fallo. Para ello utiliza dos herramientas: ZKFiloverControer y el Zookeeper Quorum.

En estos procedimientos, los nodos de datos gestionados por otros componentes de la arquitectura Hadoop se clasifican como namenodes activos, supervisados por el usuario. A continuación, cada uno de esos namenodes es examinado dentro de las dos subsecciones de Zookeeper mencionadas anteriormente, con el fin de identificar áreas problemáticas y posibles fallos.

Guía paso a paso para instalar Hadoop en Ubuntu 20.04

Por fin, tras conocer la arquitectura de Hadoop, es momento de ir al grano: cómo instalar Hadoop en Ubuntu 20.04, la parte final de este tutorial de Hadoop. Antes de pasar a la guía paso a paso, revisemos los requisitos previos. Ten en cuenta que esta guía también es válida para Ubuntu 18.04.

Requisitos previos

Los requisitos previos para instalar Hadoop en Ubuntu son bastante sencillos. Solo necesitas un equipo con Ubuntu y acceso root, ya sea de forma local o remota a través de un servidor VPS. En cuanto a los programas necesarios, asegúrate de tener instalados Java 11 y SSH. Si no los tienes, ejecuta los siguientes comandos uno a uno para instalarlos:

sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y

En cuanto a la licencia, no necesitas ninguna, ya que Hadoop es gratuito y de código abierto. Con esto es suficiente. Pasemos al primer paso.

Paso 1: Crear un usuario sin privilegios de root para Hadoop

Crea un usuario sin privilegios de root para Hadoop con el siguiente comando. Esto forma parte de la configuración previa que hay que realizar antes de descargar e instalar Hadoop:

sudo adduser hdoop
su - hdoop

Paso 2: Configurar claves SSH

Para instalar Hadoop en Ubuntu, usaremos el usuario de Hadoop que acabas de crear para establecer una conexión SSH. Ejecuta este comando para generar un par de claves SSH y guardarlo:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Una vez generadas las claves, la siguiente línea te permitirá marcarlas como authorized_keys y guardarlas en tu directorio SSH:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Usa este comando para asegurarte de que tu conexión SSH tiene todos los permisos necesarios:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Confirma los cambios y podrás conectarte fácilmente a tu localhost en cualquier momento con el usuario que creaste:

ssh localhost

Paso 3: Descargar e instalar Hadoop en Ubuntu

Puedes visitar el sitio web de Apache Hadoop para ver una lista de versiones con su historial de cambios reciente. Elige la versión que prefieras y obtendrás un enlace que puedes usar con el siguiente comando para descargar e instalar Hadoop en Ubuntu. Aquí utilizaré la versión 3.3.6. Sustituye '3.3.6' por la última versión estable si es necesario:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

Una vez completada la descarga, ejecuta esta línea para finalizar el proceso de extracción e instalación:

tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop

Paso 4: Configurar el entorno de Hadoop

Establece JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:

echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh

Paso 5: Editar los archivos de configuración

Actualiza los archivos de configuración XML de Hadoop con los ajustes de tu clúster.

nano /usr/local/hadoop/etc/hadoop/core-site.xml

Paso 6: Formatear HDFS

Inicializa el espacio de nombres del sistema de archivos de Hadoop.

/usr/local/hadoop/bin/hdfs namenode -format

Paso 7: Iniciar los servicios de Hadoop

Inicia los servicios HDFS y YARN.

/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh

Paso 8: Verificar la instalación

Comprueba los procesos Java en ejecución para confirmar que Hadoop está funcionando.

jps

Paso 9: Acceder a las interfaces web

Abre en el navegador las interfaces NameNode y ResourceManager de Hadoop.

NameNode: http://localhost:9870
Gestor de Recursos: http://localhost:8088

Paso 10: Ejecutar un ejemplo de MapReduce

Ejecuta un trabajo MapReduce de ejemplo para validar la configuración.

/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*

Paso 11: Definir las variables de entorno

Añade el directorio bin y sbin directorios al PATH del sistema.

echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc

¡Listo! Has configurado e instalado correctamente Apache Hadoop en Ubuntu 20.04.

Conclusión

En resumen, instalar Hadoop en Ubuntu 20.04 es un proceso detallado que requiere atención cuidadosa y disposición para entender cada paso de la configuración. Siguiendo los pasos de esta guía, los usuarios de Ubuntu pueden aprovechar al máximo las capacidades de Hadoop para sus proyectos de análisis de datos.

Mi recomendación es desplegar Hadoop como nodo único con distribución limitada si solo quieres aprenderlo y experimentar con él. Para ese propósito, un VPS es más que suficiente. Cloudzy te ofrece una amplia variedad de Servicios de Linux en VPS incluyendo un Ubuntu VPS fiable y sólido, que puedes configurar en poco tiempo para convertirlo en tu entorno de aprendizaje ideal para Hadoop. Desde 4,95 $ al mes, puedes tener tu propio Ubuntu VPS con más de 12 ubicaciones y soporte disponible las 24 horas, los 7 días de la semana.

ubuntu-vps La elección obvia

La mayoría de servidores que ejecutan Linux usan Ubuntu. ¿Por qué no el tuyo? Descubre por qué todo el mundo elige Ubuntu y consigue un VPS Ubuntu optimizado.

Obtén tu VPS Ubuntu

Preguntas frecuentes

¿Cuáles son las diferencias entre HDFS y MapReduce?

Aunque ambos módulos forman parte del ecosistema Hadoop, cumplen funciones diferentes. HDFS actúa como sistema de archivos distribuido y facilita el acceso a los datos. MapReduce, por su parte, destaca en la división y el análisis eficiente de grandes volúmenes de datos.

¿Hadoop es una base de datos?

Hadoop no es una base de datos, aunque es un error frecuente pensarlo. Funciona como un sistema de archivos distribuido que permite almacenar y procesar grandes cantidades de datos mediante una red de ordenadores interconectados. No debe usarse como sustituto directo de un sistema de base de datos tradicional.

¿Cuáles son los cuatro componentes principales de Hadoop?

Hadoop se compone de cuatro elementos principales: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce y Hadoop Common. Algunos recursos también consideran ZooKeeper como un componente, aunque no está reconocido oficialmente como tal.

¿Dónde se utiliza Hadoop habitualmente?

Hadoop se aplica en múltiples sectores donde gestionar, almacenar, procesar y analizar datos a gran escala es fundamental. Da respuesta a las necesidades de todo tipo de organizaciones: desde empresas medianas y hospitales hasta startups en crecimiento, ofreciendo soluciones basadas en datos.

Compartir

Más del blog

Sigue leyendo.

Símbolo original de MongoDB sobre un servidor futurista para instalar MongoDB en Ubuntu+ eslogan sobre qué esperar del artículo + título del artículo + logotipo de Cloudzy
Bases de datos y análisis

Cómo instalar MongoDB en las tres últimas versiones de Ubuntu (paso a paso)

Has decidido usar MongoDB, una buena alternativa a MariaDB para construir una aplicación MERN, una plataforma de analítica o cualquier sistema basado en documentos, pero no encuentras documen

Jim SchwarzJim Schwarz 12 min de lectura
Gestión inteligente de datos para tu empresa: estrategias de almacenamiento y copias de seguridad similares a la nube con VPS
Bases de datos y análisis

Gestión inteligente de datos para tu empresa: estrategias de almacenamiento y copias de seguridad similares a la nube con VPS

Usar VPS para gestionar los datos de negocio de forma segura es la estrategia que recomiendo siempre que una empresa decide que ya es hora de dejar de repartir archivos entre portátiles, adjuntos de correo y carpetas a medio olvidar

Rexa CyrusRexa Cyrus 7 min de lectura
Vista materializada vs. vista
Bases de datos y análisis

Vista materializada vs. vista: su papel en las bases de datos

En los sistemas de bases de datos, una vista materializada es un objeto que almacena los resultados precalculados de una consulta como una tabla física. Dado que los datos se guardan realmente en disco, las consultas complic

Ivy JohnsonIvy Johnson 7 min de lectura

¿Listo para desplegar? Desde 2,48 $/mes.

Cloud independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. 14 días de garantía de devolución.