GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Hadoop en Ubuntu 20.04

Hadoop es un marco de software gratuito, de código abierto y basado en Java que se utiliza para el almacenamiento y procesamiento de grandes conjuntos de datos en clústeres de máquinas. Utiliza HDFS para almacenar sus datos y procesar estos datos usando MapReduce. Es un ecosistema de herramientas de Big Data que se utilizan principalmente para la extracción de datos y el aprendizaje automático.

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

Este tutorial le explicará cómo instalar y configurar Apache Hadoop en el sistema Ubuntu 20.04 LTS Linux.

Paso 1:Instalación de 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 más reciente también son compatibles con el tiempo de ejecución de Java 11 y con Java 8.

Puede instalar OpenJDK 11 desde los repositorios apt predeterminados:

sudo apt update 
sudo apt install openjdk-11-jdk

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

java -version 

Deberías obtener el siguiente resultado:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Paso 2:crear 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' (1002) ...
Adding new user `hadoop' (1002) with group `hadoop' ...
Creating home directory `/home/hadoop' ...
Copying files 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] y

Paso 3:configurar la autenticación basada en clave SSH

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

Primero, cambie el usuario a hadoop con el siguiente comando:

su - hadoop 

A continuación, ejecute el siguiente comando para generar pares de claves públicas y privadas:

ssh-keygen -t rsa 

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

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
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:QSa2syeISwP0hD+UXxxi0j9MSOrjKDGIbkfbM3ejyIk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| ..o++=.+        |
|..oo++.O         |
|. oo. B .        |
|o..+ o * .       |
|= ++o o S        |
|.++o+  o         |
|.+.+ + . o       |
|o . o * o .      |
|   E + .         |
+----[SHA256]-----+

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

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 sí y presione Entrar para autenticar el servidor local:

The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:JFqDVbM3zTPhUPgD5oMJ4ClviH6tzIRZ2GD3BdNqGMQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Paso 4:Instalación de Hadoop

Primero, cambie el usuario a hadoop con el siguiente comando:

su - hadoop 

A continuación, descargue la última versión de Hadoop con 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:

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 Hadoop y Java en su sistema.

Abra el ~/.bashrc archivo en su editor de texto favorito:

nano ~/.bashrc 

Agregue las siguientes líneas al archivo. Puede encontrar la ubicación de JAVA_HOME ejecutando dirname $(dirname $(readlink -f $(which java))) command on terminal.

export JAVA_HOME=/usr/lib/jvm/java-11-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"

Save and close the file. Then, activate the environment variables with the following command:

source ~/.bashrc 

A continuación, abra el archivo de variables de entorno de Hadoop:

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

Nuevamente configure JAVA_HOME en el entorno Hadoop.

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

Guarde y cierre el archivo cuando haya terminado.

Paso 5:Configuración de Hadoop

Primero, deberá crear los directorios 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 archivo y actualización con el nombre de host de su sistema:

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

Cambie el siguiente nombre según el nombre de host de su sistema:

XHTML

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

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

Realice los siguientes cambios:

XHTML
1234567891011121314151617 dfs.replication 1 dfs.name.dir archivo:///inicio/hadoop/hadoopdata/hdfs/namenode dfs.data.dir archivo:///inicio /hadoop/hadoopdata/hdfs/datanode

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

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

Realice los siguientes cambios:

XHTML
123456 mapreduce.framework.name yarn

Guarde y cierre el archivo cuando haya terminado.

Paso 6:iniciar el clúster de Hadoop

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

Ejecute el siguiente comando para formatear el Namenode de hadoop:

hdfs namenode -format 

Deberías obtener el siguiente resultado:

2020-11-23 10:31:51,318 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2020-11-23 10:31:51,323 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2020-11-23 10:31:51,323 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop.tecadmin.net/127.0.1.1
************************************************************/

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

start-dfs.sh 

Una vez que HDFS se inició correctamente, debería obtener el siguiente resultado:

Starting namenodes on [hadoop.tecadmin.com]
hadoop.tecadmin.com: Warning: Permanently added 'hadoop.tecadmin.com,fe80::200:2dff:fe3a:26ca%eth0' (ECDSA) to the list of known hosts.
Starting datanodes
Starting secondary namenodes [hadoop.tecadmin.com]

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

start-yarn.sh 

Deberías obtener el siguiente resultado:

Starting resourcemanager
Starting nodemanagers

Ahora puede comprobar el estado de todos los servicios de Hadoop mediante el comando jps:

jps 

Debería ver todos los servicios en ejecución en el siguiente resultado:

18194 NameNode
18822 NodeManager
17911 SecondaryNameNode
17720 DataNode
18669 ResourceManager
19151 Jps

Paso 7:ajustar el cortafuegos

Hadoop ahora está iniciado y escuchando en los puertos 9870 y 8088. A continuación, deberá permitir estos puertos a través del firewall.

Ejecute el siguiente comando para permitir las conexiones de Hadoop a través del firewall:

firewall-cmd --permanent --add-port=9870/tcp 
firewall-cmd --permanent --add-port=8088/tcp 

A continuación, vuelva a cargar el servicio firewalld para aplicar los cambios:

firewall-cmd --reload 

Paso 8:acceda a Hadoop Namenode y Resource Manager

Para acceder a Namenode, abra su navegador web y visite la URL http://your-server-ip:9870. Debería ver la siguiente pantalla:

http://hadoop.tecadmin.net:9870

Para acceder a Resource Manage, abra su navegador web y visite la URL http://your-server-ip:8088. Debería ver la siguiente pantalla:

http://hadoop.tecadmin.net:8088

Paso 9:verificar 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.

Vamos a crear un directorio en el sistema de archivos HDFS usando el siguiente comando:

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

A continuación, ejecute el siguiente comando para listar el directorio anterior:

hdfs dfs -ls / 

Deberías obtener el siguiente resultado:

Found 3 items
drwxr-xr-x   - hadoop supergroup          0 2020-11-23 10:56 /logs
drwxr-xr-x   - hadoop supergroup          0 2020-11-23 10:51 /test1

Además, coloque algunos archivos en el sistema de archivos Hadoop. Por ejemplo, colocar archivos de registro de la máquina host en el sistema de archivos Hadoop.

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

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

Vaya a la interfaz web de Namenode, haga clic en Utilidades => Explorar el sistema de archivos. Debería ver los directorios que ha creado anteriormente en la siguiente pantalla:

http://hadoop.tecadmin.net:9870/explorer.html

Paso 10:detener el clúster de Hadoop

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

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

stop-dfs.sh  

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

stop-yarn.sh 

Conclusión

Este tutorial le explicó paso a paso el tutorial para instalar y configurar Hadoop en el sistema Ubuntu 20.04 Linux.


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Samba en Ubuntu 18.04

  4. Cómo instalar y configurar Redis en Ubuntu 20.04

  5. Cómo instalar y configurar Jenkins en Ubuntu 20.04

Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar Jenkins en Ubuntu

Cómo instalar y configurar Jenkins en Ubuntu 20.04

    123456 yarn.nodemanager.aux-services mapreduce_shuffle