Apache Hadoop es un marco de software de código abierto escrito en Java para almacenamiento distribuido y procesos distribuidos, y maneja conjuntos de datos de gran tamaño distribuyéndolos entre clústeres de computadoras.
En lugar de depender de la alta disponibilidad del hardware, los módulos de Hadoop están diseñados para detectar y manejar la falla en la capa de la aplicación, por lo que le brinda un servicio de alta disponibilidad.
El marco Hadoop consta de los siguientes módulos,
- Común de Hadoop:contiene un conjunto común de bibliotecas y utilidades compatibles con otros módulos de Hadoop
- Sistema de archivos distribuidos de Hadoop (HDFS):es un sistema de archivos distribuido basado en Java que almacena datos, proporcionando un rendimiento muy alto a la aplicación.
- Hadoop YARN:administra los recursos en los clústeres de cómputo y los usa para programar las aplicaciones del usuario.
- Hadoop MapReduce:es un marco para el procesamiento de datos a gran escala.
Esta guía lo ayudará a instalar Apache Hadoop en CentOS 7, Ubuntu 18.04 y Debian 9. Esta guía también debería funcionar en Ubuntu 16.04.
Requisitos
Cambie al usuario root.
su -
O
sudo su -
Instalar Java
Apache Hadoop requiere solo la versión 8 de Java. Por lo tanto, puede optar por instalar OpenJDK u Oracle JDK.
LEER: Cómo instalar Oracle Java en CentOS 7/RHEL 7
LEER: Cómo instalar Oracle Java en Ubuntu 18.04
LEER: Cómo instalar Oracle Java en Debian 9
Aquí, para esta demostración, instalaré OpenJDK 8.
### CentOS 7/RHEL 7 ### # yum -y install java-1.8.0-openjdk wget### Ubuntu 18.04/16.04 y Debian 9 ### # apt actualizar # apt install -y openjdk-8-jdk wget
Compruebe la versión de Java.
# java -versión
Salida:
openjdk versión "1.8.0_212" OpenJDK Runtime Environment (compilación 1.8.0_212-b04)OpenJDK 64-Bit Server VM (compilación 25.212-b04, modo mixto)
Cree un usuario de Hadoop y habilite la autenticación sin contraseña
Se recomienda crear un usuario normal para configurar y ejecutar Apache Hadoop. Por lo tanto, cree un usuario llamado hadoop y establezca una contraseña.
# useradd -m -d /home/hadoop -s /bin/bash hadoop# passwd hadoop
Una vez que haya creado un usuario, configure ssh sin contraseña en el sistema local. Cree una clave ssh usando los siguientes comandos.
# su - hadoop$ ssh-keygen$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys$ chmod 600 ~/.ssh/authorized_keys
Verifique la comunicación sin contraseña con el sistema local. Si está haciendo ssh por primera vez, escriba sí para agregar claves RSA a hosts conocidos.
$ ssh 127.0.0.1
Instalar Apache Hadoop
Descarga Hadoop
Puede visitar la página de Apache Hadoop para descargar el último paquete de Hadoop, o puede ejecutar el siguiente comando en la terminal para descargar Hadoop v3.2.0.
$ wget https://www-us.apache.org/dist/hadoop/common/stable/hadoop-3.2.0.tar.gz$ tar -zxvf hadoop-3.2.0.tar.gz $ mv hadoop -3.2.0 hadoop
Instalar Hadoop
Hadoop admite tres modos de clústeres
- Modo local (independiente):se ejecuta como un único proceso Java.
- Modo pseudodistribuido:cada demonio de Hadoop se ejecuta en un proceso independiente.
- Modo completamente distribuido:es un clúster real de varios nodos que va desde unos pocos nodos hasta un clúster extremadamente grande.
Configurar variables ambientales
Aquí, configuraremos Hadoop en modo pseudodistribuido. Para empezar, configure las variables ambientales en el archivo ~/.bashrc.
exportar JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre ## Cámbialo según tu sistema exportar HADOOP_HOME=/inicio/hadoop/hadoop ## Cámbialo según tu sistema exportar hadoop_install =$ hadoop_homeexport hadoop_mapred_home =$ hadoop_homeexport hadoop_common_home =$ hadoop_homeexportAplicar variables ambientales a la sesión actual.
$ fuente ~/.bashrcModificar archivos de configuración
Edite el archivo ambiental de Hadoop.
vi $HADOOP_HOME/etc/hadoop/hadoop-env.shEstablezca la variable de entorno JAVA_HOME.
exportar JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jreHadoop tiene muchos archivos de configuración y debemos editarlos según los modos de clúster que configuremos (pseudodistribuidos).
$ cd $HADOOP_HOME/etc/hadoopEdite core-site.xml.
fs.defaultFS hdfs://servidor.itzgeek.local :9000 Edite hdfs-site.xml.
dfs.replicación 1 dfs.nombre.dir archivo :///home/hadoop/hadoopdata/hdfs/namenode dfs.data.dir file:///home/hadoop/hadoopdata/hdfs/datanode Cree directorios NameNode y DataNode en el directorio de inicio del usuario de hadoop.
mkdir -p ~/hadoopdata/hdfs/{namenode,datanode}Edite mapred-site.xml.
mapreduce.framework.name hilo Edite yarn-site.xml.
yarn.nodemanager.aux-services mapreduce_shuffle Ahora formatee el NameNode usando el siguiente comando. No olvide consultar el directorio de almacenamiento.
$ hdfs namenode -formatoSalida:
. . .. . .2019-05-12 06:38:42,066 INFO common.Storage:el directorio de almacenamiento /home/hadoop/hadoopdata/hdfs/namenode se ha formateado correctamente.2019-05-12 06:38:42,169 INFO namenode.FSImageFormatProtobuf:Guardando imagen file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_00000000000000000000 sin compresión2019-05-12 06:38:42,483 INFO namenode.FSImageFormatProtobuf:Archivo de imagen /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage .ckpt_0000000000000000000 de tamaño 401 bytes guardado en 0 segundos APAGADO_MSG:/*********************************************** *************SHUTDOWN_MSG:Apagando NameNode en server.itzgeek.local/192.168.1.10*********************** ***************************************/Cortafuegos
Permita Apache Hadoop a través del firewall. Ejecute los siguientes comandos como usuario root.
CortafuegosD:
firewall-cmd --permanent --add-port=9870/tcpfirewall-cmd --permanent --add-port=8088/tcpfirewall-cmd --recargarUFW:
ufw permitir 9870/tcpufw permitir 8088/tcpufw recargarInicie el daemon NameNode y el daemon DataNode utilizando los scripts en el directorio /sbin, proporcionado por Hadoop.
$ inicio-dfs.shSalida:
Iniciando namenodes en [server.itzgeek.local]server.itzgeek.local:Advertencia:Se agregó permanentemente 'server.itzgeek.local,192.168.1.10' (ECDSA) a la lista de hosts conocidos.Iniciando datanodeslocalhost:Advertencia:Permanentemente agregó 'localhost' (ECDSA) a la lista de hosts conocidos. Iniciando nodos de nombre secundarios [server.itzgeek.local]2019-05-12 06:39:14,171 WARN util.NativeCodeLoader:no se puede cargar la biblioteca nativa de hadoop para su plataforma. .. usando clases java integradas cuando correspondaAbra su navegador web y vaya a la siguiente URL para navegar por NameNode.
http://ip.ad.dre.ss:9870/Inicie el demonio ResourceManager y el demonio NodeManager.
$ inicio-hilo.shSalida:
Iniciando resourcemanagerIniciando nodemanagersAbra su navegador web y vaya a la siguiente URL para acceder al ResourceManager.
http://ip.ad.dre.ss:8088/Prueba del clúster de nodo único de Hadoop
Antes de realizar la carga, creemos un directorio en HDFS.
$ hdfs dfs-mkdir /rajCarguemos un archivo en el directorio HDFS llamado raj.
$ hdfs dfs -put ~/.bashrc /rajLos archivos subidos se pueden ver yendo a NameNode>> Utilidades>> Explorar el sistema de archivos en NodoNombre.
http://ip.ad.dre.ss/explorer.html#/rajCopie los archivos de HDFS a sus sistemas de archivos locales.
$ hdfs dfs -get /raj /tmp/Puede eliminar los archivos y directorios usando los siguientes comandos.
hdfs dfs -rm -f /raj/.bahrchdfs dfs -rmdir /rajConclusión
Eso es todo. Configuró correctamente un clúster de Hadoop de un solo nodo y probó el sistema de archivos de Hadoop. Comparta sus comentarios en la sección de comentarios.