Cómo instalar Hadoop en UbuntuPasos para la descarga y la configuración

⚡ Resumen inteligente

Instalación de Apache Hadoop en Ubuntu El proceso consta de dos fases: primero, descomprimir la versión bajo una cuenta de sistema dedicada con SSH sin contraseña y, a continuación, editar cuatro archivos XML antes de formatear HDFS e iniciar el clúster de un solo nodo.

  • 🔘 Requisitos previos: Una carrera Ubuntu máquina y un soporte Java El kit de desarrollo debe estar instalado previamente.
  • ☑️ Cuenta dedicada: Crea el grupo hadoop_ y la cuenta hduser_ para que los demonios nunca se ejecuten como tu usuario de inicio de sesión.
  • SSH sin contraseña: Hadoop inicia los demonios a través de SSH, por lo que la conexión ssh a localhost debe ser exitosa sin que se solicite una contraseña.
  • 🧪 Cuatro archivos de configuración: Los archivos hadoop-env.sh, core-site.xml, mapred-site.xml y hdfs-site.xml contienen todas las configuraciones que se modifican en este tutorial.
  • 🛠️ Primer arranque: Formatee el NameNode una vez, luego ejecute start-dfs.sh y start-yarn.sh y confirme cinco demonios con jps.
  • 🧭 Deriva de versión: Las capturas de pantalla utilizan Hadoop 2.2.0, así que compruebe la versión, los puertos y los nombres de las propiedades comparándolos con Hadoop 3.x.

Cómo instalar Hadoop en Ubuntu

En este tutorial, le guiaremos paso a paso por el proceso de instalación de Apache Hadoop en un equipo Linux (Ubuntu). Este es un proceso de dos partes: primero, descargar e instalar la versión, y luego configurarla.

Hay dos requisitos previos:

Notas sobre la versión Hadoop 3.x para esta configuración.

Las capturas de pantalla de este tutorial se realizaron en Hadoop 2.2.0. La secuencia de pasos no ha cambiado en las versiones actuales, pero algunos nombres y valores predeterminados se han modificado. Consulte la tabla a continuación antes de copiar cualquier comando tal cual.

Configuración o paso En este tutorial (Hadoop 2.x) Hadoop 3.x actual
Archivo de lanzamientos hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gz, la primera versión estable 3.5, publicada el 2 de abril de 2026
Propiedad predeterminada del sistema de archivos fs.default.name en la prosa, fs.defaultFS en el XML fs.defaultFS solamente; fs.default.name es obsoleto
Propiedad MapReduce mapreduce.jobtracker.address mapreduce.framework.name establecido en yarn; el trabajoTracker ya no existe una vez que YARN programa el trabajo.
mapred-sitio.xml Copiado de mapred-site.xml.template Se envia en etc/hadoop ya es así, por lo que el paso de copia es innecesario.
Puerto de interfaz web de NameNode 50070 9870
Java Java 6 o Java 7 Java 8 o Java 11

Todo lo demás en esta guía se comporta de la misma manera en Hadoop 3: la cuenta dedicada, la clave SSH, los cuatro archivos de configuración y los scripts de inicio y parada.

Parte 1) Descargar e instalar Hadoop

Paso 1) Agregar un usuario del sistema Hadoop

Agregue un usuario del sistema Hadoop utilizando el siguiente comando.

sudo addgroup hadoop_

Terminal ejecutando sudo addgroup hadoop_

sudo adduser --ingroup hadoop_ hduser_

El mensaje adduser recopila los detalles para hduser_

Ingrese su contraseña, nombre y otros datos.

NOTA: Existe la posibilidad de que se produzca el siguiente error en este proceso de configuración e instalación.

“hduser no está en el archivo sudoers. Este incidente será reportado."

Mensaje de error: hduser no se encuentra en el archivo sudoers.

Este error se puede solucionar iniciando sesión como usuario root.

Cambiar al usuario root en la terminal

Ejecutar el comando

sudo adduser hduser_ sudo

Agregar hduser_ al grupo sudo

Re-login as hduser_

Volver a iniciar sesión como hduser_

Paso 2) Configurar SSH

Para administrar los nodos en un clúster, Hadoop requiere acceso SSH.

Primero, cambie de usuario e ingrese el siguiente comando

su - hduser_

Cambiar de usuario con su - hduser_

Este comando creará una nueva clave.

ssh-keygen -t rsa -P ""

ssh-keygen genera un par de claves RSA para hduser_

Habilite el acceso SSH a la máquina local utilizando esta clave.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Agregar id_rsa.pub al archivo authorized_keys

Ahora prueba la configuración SSH conectándote a localhost como el usuario 'hduser_'.

ssh localhost

Sesión ssh localhost exitosa para hduser_

Nota: Si ve el siguiente error en respuesta a 'ssh localhost', es posible que SSH no esté disponible en este sistema.

La conexión ssh a localhost falla con un error de conexión rechazada.

Para resolver esto –

Purgue SSH usando,

sudo apt-get purge openssh-server

Es recomendable purgar el sistema antes de comenzar la instalación.

apt-get purge elimina un paquete openssh-server existente

Instale SSH usando el comando-

sudo apt-get install openssh-server

apt-get instalando el paquete openssh-server

Paso 3) Descarga Hadoop

El siguiente paso es descargar Hadoop desde el Página de versiones de Apache Hadoop.

Página de versiones de Apache Hadoop que enumera las versiones disponibles

Seleccione Estable

Listado de directorios para la versión estable de Hadoop

Seleccione el archivo tar.gz (no el archivo que termina en src).

Elegir el binario Hadoop tar.gz en lugar del archivo src

Una vez finalizada la descarga, navegue hasta el directorio que contiene el archivo tar.

Se abrió la terminal en el directorio que contenía el archivo tar descargado.

Enter,

sudo tar xzf hadoop-2.2.0.tar.gz

ExtracComprimiendo el archivo tarball de Hadoop con tar xzf

Ahora, cambie el nombre de hadoop-2.2.0 a hadoop.

sudo mv hadoop-2.2.0 hadoop

Cambiar el nombre del extracted hadoop-2.2.0 carpeta a hadoop

Finalmente, entregue la carpeta a la nueva cuenta.

sudo chown -R hduser_:hadoop_ hadoop

chown asignando la carpeta hadoop a hduser_ y hadoop_

Sustituya la versión que realmente descargó por hadoop-2.2.0 en los tres comandos anteriores.

Parte 2) Configurar Hadoop

Paso 1) Modificar el archivo ~/.bashrc

Agregue las siguientes líneas al final del archivo ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

Archivo bashrc con las exportaciones HADOOP_HOME, JAVA_HOME y PATH añadidas

Ahora, configure este entorno utilizando el siguiente comando.

. ~/.bashrc

Se está ejecutando bashrc para que las nuevas variables de entorno surtan efecto.

Paso 2) Configuraciones relacionadas con HDFS

Configure JAVA_HOME dentro del archivo $HADOOP_HOME/etc/hadoop/hadoop-env.sh, como se muestra a continuación.

La línea JAVA_HOME predeterminada dentro de hadoop-env.sh

hadoop-env.sh se abrió en el editor mostrando la exportación de JAVA_HOME

Con

hadoop-env.sh JAVA_HOME reemplazado con el real Java ruta de instalación

Hay dos parámetros en $HADOOP_HOME/etc/hadoop/core-site.xml que deben configurarse:

1. 'hadoop.tmp.dir' – Se utiliza para especificar un directorio que Hadoop utilizará para almacenar sus archivos de datos.

2. 'fs.defaultFS': especifica el sistema de archivos predeterminado. El nombre anterior para la misma propiedad, 'fs.default.name', está obsoleto.

Para configurar estos parámetros, abra core-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

Abriendo core-site.xml con gedit

Copia las líneas siguientes entre las etiquetas.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

core-site.xml contiene las propiedades hadoop.tmp.dir y fs.defaultFS.

Navegue al directorio $HADOOP_HOME/etc/hadoop.

Terminal dentro del directorio de configuración de Hadoop etc/hadoop

Ahora, cree el directorio mencionado en core-site.xml.

sudo mkdir -p <Path of Directory used in above setting>

mkdir -p creando la ruta hadoop.tmp.dir

Otorgar permisos al directorio.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

chown otorga a hduser_ la propiedad del directorio temporal.

sudo chmod 750 <Path of Directory created in above step>

Se aplicó el permiso chmod 750 al directorio temporal.

Paso 3) Configuración de MapReduce

Antes de comenzar con estas configuraciones, vamos a establecer la ruta HADOOP_HOME.

sudo gedit /etc/profile.d/hadoop.sh

y entrar

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

Script de perfil hadoop.sh que exporta HADOOP_HOME

Siguiente entrar

sudo chmod +x /etc/profile.d/hadoop.sh

chmod +x hace ejecutable el script de perfil hadoop.sh

Salga de la terminal y vuelva a reiniciarla.

Escriba echo $HADOOP_HOME para verificar la ruta.

echo $HADOOP_HOME imprimiendo la ruta de instalación configurada

Ahora copia archivos

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

Copiando mapred-site.xml.template a mapred-site.xml

Abra el archivo mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

Abriendo mapred-site.xml con gedit

Agregue la configuración a continuación entre los y etiquetas.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

mapred-site.xml que contiene el trabajo MapReduce tracpropiedad ker

Abra el archivo $HADOOP_HOME/etc/hadoop/hdfs-site.xml como se muestra a continuación:

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Abriendo hdfs-site.xml con gedit

Agregue la configuración a continuación entre los y etiquetas.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

hdfs-site.xml contiene las propiedades dfs.replication y dfs.datanode.data.dir

Cree el directorio especificado en la configuración anterior.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

mkdir -p creando el directorio de datos de DataNode

Luego, otorga la propiedad y los permisos sobre él.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

chown otorga a hduser_ la propiedad del directorio de datos de DataNode.

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

Se aplicó el comando chmod 750 al directorio de datos de DataNode.

Paso 4) Formatear HDFS

Antes de iniciar Hadoop por primera vez, formatee HDFS utilizando el siguiente comando.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format salida formateando el nuevo sistema de archivos

Paso 5) Inicie el clúster de nodo único de Hadoop.

Inicie el clúster de nodo único de Hadoop utilizando el siguiente comando.

$HADOOP_HOME/sbin/start-dfs.sh

El resultado del comando anterior se muestra a continuación.

Salida de start-dfs.sh iniciando NameNode y DataNode

Luego, inicia los demonios de YARN.

$HADOOP_HOME/sbin/start-yarn.sh

Salida de start-yarn.sh: iniciando ResourceManager y NodeManager.

Utilizando la herramienta 'jps', verifique si todos los procesos relacionados con Hadoop se están ejecutando.

Salida de jps que muestra los cinco demonios Hadoop en ejecución.

Si Hadoop se ha iniciado correctamente, la salida de jps debería mostrar NameNode, NodeManager, ResourceManager, SecondaryNameNode y DataNode.

Paso 6) Detenerseping Hadoop

Desactive el clúster en orden inverso.

$HADOOP_HOME/sbin/stop-dfs.sh

Salida de stop-dfs.sh al apagar los demonios HDFS

$HADOOP_HOME/sbin/stop-yarn.sh

Salida de stop-yarn.sh: deteniendo los demonios de YARN

Cómo verificar que Hadoop esté funcionando y solucionar errores comunes

La salida de jps confirma que los procesos se iniciaron, pero no que el clúster sea utilizable. Cuatro comprobaciones adicionales resuelven esa duda.

  • Abra la interfaz web de NameNode en http://localhost:9870 (puerto 50070 en Hadoop 2.x) y confirme que el resumen informa un nodo activo.
  • Abra la interfaz de ResourceManager en http://localhost:8088 para confirmar que YARN aceptó el NodeManager.
  • Ejecutar hdfs dfsadmin -report para la capacidad, los DataNodes activos y cualquier bloque con replicación insuficiente.
  • Escribe algo: hdfs dfs -mkdir /test seguido por hdfs dfs -ls / demuestra que el espacio de nombres acepta cambios.

La mayoría de los fracasos en el primer intento se engloban en una de cinco categorías.

Síntoma Causa Solución
JAVA_HOME no está configurado y no se pudo encontrar. La variable se exporta en .bashrc pero no en hadoop-env.sh. También debes configurar la ruta absoluta del JDK dentro de hadoop-env.sh.
Permiso denegado (clave pública, contraseña) en ssh localhost El parámetro authorized_keys no está presente o es demasiado permisivo. Vuelva a agregar id_rsa.pub y luego ejecute chmod 600 en ~/.ssh/authorized_keys
Conexión rechazada en el puerto 22 El servidor OpenSSH no está instalado o no se está ejecutando. Instale openssh-server e inicie el servicio ssh.
Falta DataNode en jps después de un reformateo. Cluster Discrepancia de ID entre el NameNode formateado y el antiguo directorio DataNode. Vacía la carpeta dfs.datanode.data.dir y luego formatéala una vez más.
start-dfs.sh: comando no encontrado HADOOP_HOME y PATH nunca se cargaron en el shell actual. Ejecuta . ~/.bashrc o abre una nueva terminal.

Preguntas Frecuentes

Cualquiera que reciba apoyo activo Ubuntu La versión LTS funciona, incluyendo 22.04 y 24.04. Hadoop 3.x está compilado y probado contra Java 8 y Java 11, así que instale uno de esos JDK; los JDK más nuevos no son totalmente compatibles y los más antiguos Java Las compilaciones 7 ya no son válidas.

Los scripts start-dfs.sh y start-yarn.sh inician todos los demonios a través de SSH, incluso cuando el único host es localhost. Sin una clave sin contraseña, los scripts se bloquean al solicitar una contraseña y no se inicia ningún demonio.

hadoop.tmp.dir es la ruta base de almacenamiento temporal a partir de la cual Hadoop obtiene otras ubicaciones temporales. dfs.datanode.data.dir es donde un DataNode guarda los archivos de bloques reales. Apunte la segunda ruta al almacenamiento persistente, nunca a /tmp, o los bloques desaparecerán al reiniciar.

Formatee una sola vez, antes del primer inicio. Si vuelve a ejecutar el formateo, se borrará el espacio de nombres y los directorios DataNode existentes conservarán un ID de clúster anterior, por lo que DataNode se negará a registrarse y desaparecerá de la salida de jps.

Sí, aunque Windows Necesita los binarios nativos winutils.exe y hadoop.dll para la versión correspondiente. La mayoría de la gente evita eso ejecutando el mismo Ubuntu pasos dentro de WSL 2, que se comporta como un host Linux normal.

Para fines de aprendizaje, sí: una imagen preconfigurada omite la creación de usuarios, las claves SSH y la edición de XML. Sin embargo, vale la pena instalarla manualmente al menos una vez, ya que muestra qué archivo controla cada configuración cuando un clúster real presenta problemas.

Los modelos de aprendizaje automático, basados ​​en las métricas de NameNode y YARN, predicen los límites de capacidad, detectan trabajos con rendimientos desequilibrados e identifican con antelación los discos defectuosos. Varias plataformas también recomiendan automáticamente el tamaño de los contenedores, lo que elimina gran parte del ajuste manual que antes requería esta configuración.

Copilot genera rápidamente los bloques de propiedades core-site.xml y hdfs-site.xml y recuerda la ortografía exacta. Verifique cada sugerencia con la documentación de su versión, ya que a menudo propone propiedades obsoletas como mapreduce.job.tracker.address o fs.default.name.

Resumir este post con: