Configuración del patrón pseudo-distribuido
En la mayoría de los casos, Hadoop se utiliza en un entorno de clúster, es decir, es necesario desplegar Hadoop en varios nodos. Al mismo tiempo, Hadoop también puede ejecutarse en un solo nodo en patrón pseudo-distribuido, simulando escenarios de multi-nodo a través de múltiples procesos Java independientes. En la fase inicial de aprendizaje, no es necesario gastar muchos recursos en crear diferentes nodos. Por lo tanto, esta sección y los capítulos siguientes utilizarán principalmente el patrón pseudo-distribuido para la implementación del "clúster" de Hadoop.
Crear directorios
Para comenzar, cree los directorios namenode y datanode dentro del directorio home del usuario Hadoop. Ejecute el comando siguiente para crear estos directorios:
rm -rf ~/hadoopdata
mkdir -p ~/hadoopdata/hdfs/{namenode,datanode}
Luego, es necesario modificar los archivos de configuración de Hadoop para que funcione en patrón pseudo-distribuido.
Editar core-site.xml
Abra el archivo core-site.xml con un editor de texto en la terminal:
vim /home/hadoop/hadoop/etc/hadoop/core-site.xml
En el archivo de configuración, modifique el valor de la etiqueta configuration al siguiente contenido:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
El elemento de configuración fs.defaultFS se utiliza para indicar la ubicación del sistema de archivos que utiliza el clúster por defecto:
Guarde el archivo y salga de vim después de editar.
Editar hdfs-site.xml
Abra otro archivo de configuración hdfs-site.xml:
vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
En el archivo de configuración, modifique el valor de la etiqueta configuration al siguiente:
<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>
Este elemento de configuración se utiliza para indicar el número de copias de archivos en HDFS, que por defecto es 3. Dado que lo hemos desplegado de manera pseudo-distribuida en un solo nodo, se modifica a 1:
Guarde el archivo y salga de vim después de editar.
Editar hadoop-env.sh
A continuación, edite el archivo hadoop-env.sh:
vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh
Cambie el valor de JAVA_HOME a la ubicación real del JDK instalado, es decir, /usr/lib/jvm/java-11-openjdk-amd64.
Nota: Puede usar el comando echo $JAVA_HOME para verificar la ubicación real del JDK instalado.
Guarde el archivo y salga del editor vim después de editar.
Editar yarn-site.xml
A continuación, edite el archivo yarn-site.xml:
vim /home/hadoop/hadoop/etc/hadoop/yarn-site.xml
Agregue lo siguiente a la etiqueta configuration:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
Guarde el archivo y salga del editor vim después de editar.
Editar mapred-site.xml
Finalmente, es necesario editar el archivo mapred-site.xml.
Abra el archivo con el editor vim:
vim /home/hadoop/hadoop/etc/hadoop/mapred-site.xml
Del mismo modo, agregue lo siguiente a la etiqueta configuration:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
</configuration>
Guarde el archivo y salga del editor vim después de editar.