Cómo instalar y configurar Hadoop en Ubuntu 20.04 LTS

1 mar 2021 7 min di lettura
Cómo instalar y configurar Hadoop en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Hadoop es un marco de software gratuito, de código abierto y basado en Java que se utiliza para almacenar y procesar grandes conjuntos de datos en grupos de máquinas. Utiliza HDFS para almacenar sus datos y procesarlos usando MapReduce.

Hadoop es un ecosistema de herramientas de Big Data que se utiliza principalmente para la minería de datos y el aprendizaje automático.

Apache Hadoop 3.3 viene con mejoras significativas y muchas correcciones de errores con respecto a versiones anteriores. Tiene cuatro componentes principales como Hadoop Common, HDFS, YARN y MapReduce.

Este tutorial le dirá cómo instalar y configurar Apache Hadoop en Ubuntu 20.04 LTS Focal Fossa.

Si desea instalar Hadoop en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Java

Hadoop está escrito en Java y solo es compatible con la versión 8 de Java. La versión 3.3 de Hadoop y la última también son compatibles con el tiempo de ejecución de Java 11 y Java 8.

Puede instalar OpenJDK 8 desde los repositorios de apt predeterminados:

sudo apt update
sudo apt install openjdk-8-jdk

Una vez instalado, verifique la versión instalada de Java con el siguiente comando:

java -version

Debería obtener el siguiente resultado:

openjdk version "1.8.0_275"
 OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
 OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

Crea un usuario de Hadoop

Es una buena idea crear un usuario separado para ejecutar Hadoop por razones de seguridad.

Ejecute el siguiente comando para crear un nuevo usuario con el nombre hadoop:

sudo adduser hadoop

Proporcione y confirme la nueva contraseña como se muestra a continuación:

Adding user `hadoop'...
 Adding new group `hadoop' (1000)...
 Adding new user `hadoop' (1000) with group `hadoop'...
 The home directory `/home/hadoop' already exists. Not copying from `/etc/skel'.
 New password:
 Retype new password:
 passwd: password updated successfully
 Changing the user information for hadoop
 Enter the new value, or press ENTER for the default
 Full Name []:
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
 Is the information correct? [Y/n]

Configurar la autenticación basada en claves SSH

A continuación, deberá configurar la autenticación SSH sin contraseña para el sistema local.

Primero, inicie sesión con el usuario de hadoop con el comando su:

su - hadoop

Luego, ejecute el siguiente comando para generar pares de claves públicas y privadas:

ssh-keygen -t rsa

Se le pedirá que ingrese el nombre del archivo. Simplemente presione Enter para completar el proceso:

Generating public/private rsa key pair.
 Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /home/hadoop/.ssh/id_rsa
 Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
 The key fingerprint is:
 SHA256:pfEaF19DFMxXeS1M3mWYPwcn2/GRb6Drv14mVNuPKow hadoop@TEST-SERVER-1
 The key's randomart image is:
 +---[RSA 3072]----+
 | *=+O|
 | o@B*|
 |. o.+@O|
 | = o...+X|
 | S o...o+|
 | +....|
 |.o. o +|
 | E o.. + |
 |..o+. |
 +----[SHA256]-----+

A continuación, agregue las claves públicas generadas por id_rsa.pub a authorized_keys y establezca el permiso apropiado:

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

A continuación, verifique la autenticación SSH sin contraseña con el siguiente comando:

ssh localhost

Se le pedirá que autentique los hosts agregando claves RSA a los hosts conocidos. Escriba yes y presione Invio para autenticar el host local:

The authenticity of host 'localhost (127.0.0.1)' can't be established.
 ECDSA key fingerprint is SHA256:CoGsEfZLQ4ELMBhVTnCASQ4DmNdmjcke/D35mmFvF9o.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
 Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
 Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-52-generic x86_64)

 * Documentation: https://help.ubuntu.com
 * Management: https://landscape.canonical.com
 * Support: https://ubuntu.com/advantage

Instalar Hadoop

Primero, asegúrese de haber iniciado sesión con el hadoop con el siguiente comando:

su - hadoop

A continuación, descargue la última versión de Hadoop usando el comando wget:

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

Una vez descargado, extraiga el archivo descargado con el comando tar:

tar -xvzf hadoop-3.3.0.tar.gz

A continuación, cambie el nombre del directorio extraído a hadoop:

mv hadoop-3.3.0 hadoop

A continuación, deberá configurar las variables de entorno de Hadoop y Java en su sistema.

Abra el ~/.bashrc en su editor de texto favorito, aquí usamos nano:

nano ~/.bashrc

Agrega las siguientes líneas:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/export HADOOP_HOME=/home/hadoop/hadoop
 export HADOOP_INSTALL=$HADOOP_HOME
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export HADOOP_YARN_HOME=$HADOOP_HOME
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

Guarde y cierre el archivo. Luego, active las variables de entorno con el siguiente comando:

source ~/.bashrc

Luego, abra el archivo de variables de entorno de Hadoop:

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

Descomente y modifique la JAVA_HOME acuerdo con la ruta de instalación de Java:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/

Guarde y cierre el archivo cuando termine.

Configurar Hadoop

Primero, deberá crear los namenode y datanode dentro del directorio de inicio de Hadoop:

Ejecute el siguiente comando para crear ambos directorios:

mkdir -p ~/hadoopdata/hdfs/namenode
mkdir -p ~/hadoopdata/hdfs/datanode

A continuación, edite el core-site.xml y actualice con el nombre de host de su sistema:

nano $HADOOP_HOME/etc/hadoop/core-site.xml

Edite el siguiente archivo de acuerdo con el nombre de host del sistema:

<configuration>
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://TUO_DOMINIO.com:9000</value>
 </property>
 </configuration>

Guarde y cierre el archivo. Luego, edite el archivo hdfs-site.xml

nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Cambie la ruta del directorio NameNode y DataNode como se muestra a continuación:

<configuration>

 <property>
 <name>dfs.replication</name>
 <value>1</value>
 </property>

 <property>
 <name>dfs.name.dir</name>
 <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
 </property>

 <property>
 <name>dfs.data.dir</name>
 <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
 </property>
 </configuration>

Guarde y cierre el archivo. Luego, edite el archivo mapred-site.xml

nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

Realice los siguientes cambios:

<configuration>
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
 </configuration>

Guarde y cierre el archivo. Luego, edite el arn-site.xml:

nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

Realice los siguientes cambios:

<configuration>
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 </configuration>

Guarde y cierre el archivo cuando termine.

Iniciar Hadoop Cluster

Antes de iniciar el clúster de Hadoop. Deberá formatear el Namenode como el usuario de hadoop.

Ejecute el siguiente comando para formatear el hadoop de Namenode:

hdfs namenode -format

Debería obtener el siguiente resultado:

...
 2020-11-23 22:59:13,290 INFO namenode.FSImage: Allocated new BlockPoolId: BP-650323875-127.0.1.1-1606168753269
 2020-11-23 22:59:13,320 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/hdfs/namenode has been successfully formatted.
 2020-11-23 22:59:13,403 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
 2020-11-23 22:59:13,595 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 401 bytes saved in 0 seconds.
 2020-11-23 22:59:13,605 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
 2020-11-23 22:59:13,610 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
 2020-11-23 22:59:13,611 INFO namenode.NameNode: SHUTDOWN_MSG:
 /************************************************************
 SHUTDOWN_MSG: Shutting down NameNode at TUO_HOSTNAME/127.0.1.1
 ************************************************************/

Después de formatear el Namenode, ejecute el siguiente comando para iniciar el clúster hadoop:

start-dfs.sh

HDFS correctamente, debería obtener el siguiente resultado:

Starting namenodes on [TUO_DOMINIO.com]
 Starting datanodes
 Starting secondary namenodes [TUO_DOMINIO.com]
 TUO_DOMINIO.com: Warning: Permanently added 'TUO_DOMINIO.com' (ECDSA) to the list of known hosts.

A continuación, inicie el YARN como se muestra a continuación:

start-yarn.sh

Debería obtener el siguiente resultado:

Starting resourcemanager
 Starting nodemanagers

Ahora puede verificar el estado de todos los servicios de Hadoop usando el comando jps

jps

Debería ver todos los servicios ejecutándose en la siguiente salida:

2129 NodeManager
 1827 SecondaryNameNode
 2452 Jps
 1701 DataNode
 2024 ResourceManager

Configurar el firewall

Hadoop ahora se está ejecutando y escuchando en los puertos 9870 y 8088.

Si tiene el firewall UFW habilitado, deberá permitir que estos puertos pasen a través del firewall.

Ejecute los siguientes comandos como root para permitir conexiones de Hadoop a través del firewall:

ufw allow 9870/tcp
ufw allow 8088/tcp

Inicie sesión en Hadoop Namenode and Resource Manager

Para acceder al Namenode, abra su navegador web y visite la URL http://tuo_dominio.com:9870. Debería ver la pantalla de resumen del servicio.

Para acceder a Resource Manage, abra su navegador web y visite la URL http://tuo_dominio.com:8088. Debería ver la pantalla de administración de Hadoop.

Compruebe el clúster de Hadoop

En este punto, el clúster de Hadoop está instalado y configurado. A continuación, crearemos algunos directorios en el sistema de archivos HDFS para probar Hadoop.

Asegúrese de haber iniciado sesión con el usuario de hadoop

su - hadoop

Creemos un directorio en el sistema de archivos HDFS usando el siguiente comando:

hdfs dfs -mkdir /test1
hdfs dfs -mkdir /logs

Luego, ejecute el siguiente comando para listar el directorio de arriba:

hdfs dfs -ls /

Debería obtener el siguiente resultado:

Found 3 items
 drwxr-xr-x - hadoop supergroup 0 2020-11-23 23:46 /logs
 drwxr-xr-x - hadoop supergroup 0 2020-11-23 23:41 /test1

Además, coloque algunos archivos en el sistema de archivos de hadoop. Por ejemplo, agregue los archivos de registro de la máquina host al sistema de archivos hadoop.

hdfs dfs -put /var/log/* /logs/

También puede consultar los archivos y el directorio anteriores en la interfaz web de Hadoop Namenode.

Vaya a la interfaz web de Namenode, haga clic en Utilities->Browse the file system. Debería ver los directorios que creó anteriormente.

Detener el clúster de Hadoop

También puede detener el servicio Hadoop Namenode and Yarn en cualquier momento ejecutando los scripts stop-dfs.sh y stop-yarn.sh como usuario de Hadoop.

Para detener el servicio Hadoop Namenode, ejecute el siguiente comando como usuario hadoop:

stop-dfs.sh

Para detener el servicio de Hadoop Resource Manager, ejecute el siguiente comando:

stop-yarn.sh

Conclusión

Este tutorial le explicó paso a paso cómo instalar y configurar Hadoop en el sistema Linux Ubuntu 20.04 LTS Focal Fossa.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.