Apache Hadoop se compone de varios paquetes de software de código abierto que funcionan juntos para el almacenamiento distribuido y el procesamiento distribuido de big data. Hay cuatro componentes principales en Hadoop:
En este tutorial, repasaremos los pasos para instalar la versión 3 de Hadoop en Ubuntu 20.04. Esto implicará la instalación de HDFS (Namenode y Datanode), YARN y MapReduce en un clúster de un solo nodo configurado en modo pseudodistribuido, que es una simulación distribuida en una sola máquina. Cada componente de Hadoop (HDFS, YARN, MapReduce) se ejecutará en nuestro nodo como un proceso Java independiente.
Requisitos de software y convenciones de línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Ubuntu 20.04 instalado o Ubuntu 20.04 Focal Fossa actualizado |
Software | Apache Hadoop, Java |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Crear usuario para entorno Hadoop
Hadoop debe tener su propia cuenta de usuario dedicada en su sistema. Para crear uno, abra una terminal y escriba el siguiente comando. También se le pedirá que cree una contraseña para la cuenta.
$ sudo adduser hadoop
Crear nuevo usuario de Hadoop Instalar el requisito previo de Java
Hadoop se basa en Java, por lo que deberá instalarlo en su sistema antes de poder utilizar Hadoop. Al momento de escribir este artículo, la versión actual de Hadoop 3.1.3 requiere Java 8, así que eso es lo que instalaremos en nuestro sistema.
Use los siguientes dos comandos para obtener las últimas listas de paquetes en apt
e instale Java 8:
$ sudo apt update
$ sudo apt install openjdk-8-jdk openjdk-8-jre
Configurar SSH sin contraseña
Hadoop se basa en SSH para acceder a sus nodos. Se conectará a máquinas remotas a través de SSH, así como a su máquina local si tiene Hadoop ejecutándose en ella. Entonces, a pesar de que solo estamos configurando Hadoop en nuestra máquina local en este tutorial, todavía necesitamos tener SSH instalado. También tenemos que configurar SSH sin contraseña
para que Hadoop pueda establecer conexiones silenciosamente en segundo plano.
- Necesitaremos el paquete OpenSSH Server y OpenSSH Client. Instálalos con este comando:
$ sudo apt install openssh-server openssh-client
- Antes de continuar, es mejor iniciar sesión en
hadoop
cuenta de usuario que creamos anteriormente. Para cambiar de usuario en tu terminal actual, usa el siguiente comando:$ su hadoop
- Con esos paquetes instalados, es hora de generar pares de claves públicas y privadas con el siguiente comando. Tenga en cuenta que la terminal le preguntará varias veces, pero todo lo que tendrá que hacer es seguir presionando
ENTER
para continuar.$ ssh-keygen -t rsa
Generación de claves RSA para SSH sin contraseña
- A continuación, copie la clave RSA recién generada en
id_rsa.pub
sobre authorized_keys
:$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- Puede asegurarse de que la configuración se haya realizado correctamente mediante SSH en localhost. Si puede hacerlo sin que se le solicite una contraseña, está listo para comenzar. SSHing en el sistema sin que se le solicite una contraseña significa que funcionó
Instalar Hadoop y configurar archivos XML relacionados
Dirígete al sitio web de Apache para descargar Hadoop. También puede usar este comando si desea descargar el binario Hadoop versión 3.1.3 directamente:
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
Extraiga la descarga al hadoop
directorio de inicio del usuario con este comando:
$ tar -xzvf hadoop-3.1.3.tar.gz -C /home/hadoop
Configuración de la variable de entorno
La siguiente export
Los comandos configurarán las variables de entorno Hadoop requeridas en nuestro sistema. Puede copiar y pegar todo esto en su terminal (es posible que deba cambiar la línea 1 si tiene una versión diferente de Hadoop):
export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export 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"
Fuente el .bashrc
archivo en la sesión de inicio de sesión actual:
$ source ~/.bashrc
A continuación, haremos algunos cambios en hadoop-env.sh
archivo, que se puede encontrar en el directorio de instalación de Hadoop en /etc/hadoop
. Usa nano o tu editor de texto favorito para abrirlo:
$ nano ~/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
Cambia el JAVA_HOME
variable a donde está instalado Java. En nuestro sistema (y probablemente también en el suyo, si está ejecutando Ubuntu 20.04 y nos ha seguido hasta ahora), cambiamos esa línea a:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Cambiar la variable de entorno JAVA_HOME
Ese será el único cambio que necesitamos hacer aquí. Puede guardar sus cambios en el archivo y cerrarlo.
Cambios de configuración en el archivo core-site.xml
El próximo cambio que debemos hacer está dentro del core-site.xml
expediente. Ábrelo con este comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/core-site.xml
Ingrese la siguiente configuración, que le indica a HDFS que se ejecute en el puerto localhost 9000 y configura un directorio para datos temporales.
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/home/hadoop/hadooptmpdata
Cambios en el archivo de configuración core-site.xml
Guarde sus cambios y cierre este archivo. Luego, cree el directorio en el que se almacenarán los datos temporales:
$ mkdir ~/hadooptmpdata
Cambios de configuración en el archivo hdfs-site.xml
Cree dos nuevos directorios para que Hadoop almacene la información de Namenode y Datanode.
$ mkdir -p ~/hdfs/namenode ~/hdfs/datanode
Luego, edite el siguiente archivo para decirle a Hadoop dónde encontrar esos directorios:
$ nano ~/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
Realice los siguientes cambios en hdfs-site.xml
archivo, antes de guardarlo y cerrarlo:
dfs.replication
1
dfs.name.dir
file:///home/hadoop/hdfs/namenode
dfs.data.dir
file:///home/hadoop/hdfs/datanode
Cambios en el archivo de configuración hdfs-site.xml Cambios de configuración en el archivo mapred-site.xml
Abra el archivo de configuración XML de MapReduce con el siguiente comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/mapred-site.xml
Y realice los siguientes cambios antes de guardar y cerrar el archivo:
mapreduce.framework.name
yarn
Cambios en el archivo de configuración mapred-site.xml Cambios de configuración en el archivo yarn-site.xml
Abra el archivo de configuración de YARN con el siguiente comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/yarn-site.xml
Agregue las siguientes entradas en este archivo, antes de guardar los cambios y cerrarlo:
mapreduceyarn.nodemanager.aux-services
mapreduce_shuffle
cambios en el archivo de configuración del sitio de hilo Inicio del clúster de Hadoop
Antes de usar el clúster por primera vez, debemos formatear el nodo de nombre. Puede hacerlo con el siguiente comando:
$ hdfs namenode -format
Formateo del NameNode de HDFS
Su terminal escupirá mucha información. Mientras no vea ningún mensaje de error, puede suponer que funcionó.
A continuación, inicie HDFS utilizando start-dfs.sh
guión:
$ start-dfs.sh
Ejecute el script start-dfs.sh
Ahora, inicie los servicios de YARN a través de start-yarn.sh
guión:
$ start-yarn.sh
Ejecute el script start-yarn.sh
Para verificar que todos los servicios/daemons de Hadoop se hayan iniciado correctamente, puede utilizar jps
dominio. Esto mostrará todos los procesos que actualmente utilizan Java que se ejecutan en su sistema.
$ jps
Ejecute jps para ver todos los procesos dependientes de Java y verifique que los componentes de Hadoop se estén ejecutando
Ahora podemos verificar la versión actual de Hadoop con cualquiera de los siguientes comandos:
$ hadoop version
o
$ hdfs version
Verificación de la instalación de Hadoop y la versión actual Interfaz de línea de comandos HDFS
La línea de comandos de HDFS se utiliza para acceder a HDFS y crear directorios o emitir otros comandos para manipular archivos y directorios. Use la siguiente sintaxis de comando para crear algunos directorios y listarlos:
$ hdfs dfs -mkdir /test
$ hdfs dfs -mkdir /hadooponubuntu
$ hdfs dfs -ls /
Interactuando con la línea de comandos de HDFS Acceda a Namenode y YARN desde el navegador
Puede acceder tanto a la interfaz de usuario web para NameNode como a YARN Resource Manager a través de cualquier navegador de su elección, como Mozilla Firefox o Google Chrome.
Para la interfaz de usuario web de NameNode, vaya a http://HADOOP-HOSTNAME-OR-IP:50070
Interfaz web DataNode para Hadoop
Para acceder a la interfaz web de YARN Resource Manager, que mostrará todos los trabajos que se están ejecutando actualmente en el clúster de Hadoop, vaya a http://HADOOP-HOSTNAME-OR-IP:8088
Interfaz web de YARN Resource Manager para Hadoop Conclusión
En este artículo, vimos cómo instalar Hadoop en un clúster de un solo nodo en Ubuntu 20.04 Focal Fossa. Hadoop nos brinda una solución práctica para manejar grandes datos, lo que nos permite utilizar clústeres para el almacenamiento y procesamiento de nuestros datos. Nos hace la vida más fácil cuando trabajamos con grandes conjuntos de datos con su configuración flexible y su cómoda interfaz web.