GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Hadoop en RHEL 8 / CentOS 8 Linux

Apache Hadoop es un marco de código abierto que se utiliza para el almacenamiento distribuido, así como para el procesamiento distribuido de grandes datos en grupos de computadoras que se ejecutan en hardware básico. Hadoop almacena datos en Hadoop Distributed File System (HDFS) y el procesamiento de estos datos se realiza mediante MapReduce. YARN proporciona una API para solicitar y asignar recursos en el clúster de Hadoop.

El marco Apache Hadoop se compone de los siguientes módulos:

  • Común de Hadoop
  • Sistema de archivos distribuidos de Hadoop (HDFS)
  • HILO
  • MapaReducir

Este artículo explica cómo instalar la versión 2 de Hadoop en RHEL 8 o CentOS 8. Instalaremos HDFS (Namenode y Datanode), YARN, MapReduce en el clúster de un solo nodo en modo pseudodistribuido, que es una simulación distribuida en una sola máquina. Cada demonio de Hadoop, como hdfs, yarn, mapreduce, etc., se ejecutará como un proceso java independiente/individual.

En este tutorial aprenderás:

  • Cómo agregar usuarios para Hadoop Environment
  • Cómo instalar y configurar Oracle JDK
  • Cómo configurar SSH sin contraseña
  • Cómo instalar Hadoop y configurar los archivos xml relacionados necesarios
  • Cómo iniciar el clúster de Hadoop
  • Cómo acceder a la interfaz de usuario web de NameNode y ResourceManager

Arquitectura HDFS.

Requisitos de software y convenciones utilizadas

Añadir usuarios para el entorno Hadoop

Cree el nuevo usuario y grupo usando el comando:

# useradd hadoop
# passwd hadoop
[root@hadoop ~]# useradd hadoop
[root@hadoop ~]# passwd hadoop
Changing password for user hadoop.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@hadoop ~]# cat /etc/passwd | grep hadoop
hadoop:x:1000:1000::/home/hadoop:/bin/bash

Instalar y configurar Oracle JDK

Descargue e instale el paquete oficial jdk-8u202-linux-x64.rpm para instalar Oracle JDK.

[root@hadoop ~]# rpm -ivh jdk-8u202-linux-x64.rpm
warning: jdk-8u202-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_202-fcs        ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...

Después de la instalación para verificar que Java se haya configurado correctamente, ejecute los siguientes comandos:

[root@hadoop ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

[root@hadoop ~]# update-alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/java/jdk1.8.0_202-amd64/jre/bin/java

Configurar SSH sin contraseña

Instale Open SSH Server y Open SSH Client o, si ya está instalado, mostrará una lista de los siguientes paquetes.

[root@hadoop ~]# rpm -qa | grep openssh*
openssh-server-7.8p1-3.el8.x86_64
openssl-libs-1.1.1-6.el8.x86_64
openssl-1.1.1-6.el8.x86_64
openssh-clients-7.8p1-3.el8.x86_64
openssh-7.8p1-3.el8.x86_64
openssl-pkcs11-0.4.8-2.el8.x86_64

Genere pares de claves públicas y privadas con el siguiente comando. El terminal le pedirá que ingrese el nombre del archivo. Presiona ENTER y proceder. Después de eso, copie el formulario de claves públicas id_rsa.pub a authorized_keys .

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 640 ~/.ssh/authorized_keys
[hadoop@hadoop ~]$ ssh-keygen -t rsa
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:H+LLPkaJJDD7B0f0Je/NFJRP5/FUeJswMmZpJFXoelg [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|     .. ..++*o .o|
|  o   .. +.O.+o.+|
|   + .  . * +oo==|
|  . o o  . E  .oo|
|   . = .S.* o    |
|    . o.o= o     |
|     . .. o      |
|       .o.       |
|       o+.       |
+----[SHA256]-----+
[hadoop@hadoop ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@hadoop ~]$ chmod 640 ~/.ssh/authorized_keys

Verifique la configuración de ssh sin contraseña con el comando:

$ ssh 
[hadoop@hadoop ~]$ ssh hadoop.sandbox.com
Web console: https://hadoop.sandbox.com:9090/ or https://192.168.1.108:9090/

Last login: Sat Apr 13 12:09:55 2019
[hadoop@hadoop ~]$

Instalar Hadoop y configurar archivos xml relacionados

Descargue y extraiga Hadoop 2.8.5 del sitio web oficial de Apache.

# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# tar -xzvf hadoop-2.8.5.tar.gz
[root@rhel8-sandbox ~]# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
--2019-04-13 11:14:03--  https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
Resolving archive.apache.org (archive.apache.org)... 163.172.17.199
Connecting to archive.apache.org (archive.apache.org)|163.172.17.199|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 246543928 (235M) [application/x-gzip]
Saving to: ‘hadoop-2.8.5.tar.gz’

hadoop-2.8.5.tar.gz                       100%[=====================================================================================>] 235.12M  1.47MB/s    in 2m 53s

2019-04-13 11:16:57 (1.36 MB/s) - ‘hadoop-2.8.5.tar.gz’ saved [246543928/246543928]

Configuración de las variables de entorno

Edite el bashrc para el usuario de Hadoop mediante la configuración de las siguientes variables de entorno de Hadoop:

export HADOOP_HOME=/home/hadoop/hadoop-2.8.5
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 en la sesión de inicio de sesión actual.

$ source ~/.bashrc

Edite el hadoop-env.sh archivo que está en /etc/hadoop dentro del directorio de instalación de Hadoop y realice los siguientes cambios y verifique si desea cambiar alguna otra configuración.

export JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.8.0_202-amd64"}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/home/hadoop/hadoop-2.8.5/etc/hadoop"}

Cambios de configuración en el archivo core-site.xml

Edite el core-site.xml con vim o puede usar cualquiera de los editores. El archivo está en /etc/hadoop dentro de hadoop directorio de inicio y agregue las siguientes entradas.

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.sandbox.com:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadooptmpdata</value>
</property>
</configuration>

Además, cree el directorio bajo hadoop carpeta de inicio.

$ mkdir hadooptmpdata

Cambios de configuración en el archivo hdfs-site.xml

Edite el hdfs-site.xml que está presente en la misma ubicación, es decir, /etc/hadoop dentro de hadoop directorio de instalación y cree el Namenode/Datanode directorios bajo hadoop directorio de inicio del usuario.

$ mkdir -p hdfs/namenode
$ mkdir -p hdfs/datanode
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hdfs/datanode</value>
</property>
</configuration>

Cambios de configuración en el archivo mapred-site.xml

Copie el mapred-site.xml de mapred-site.xml.template usando cp y luego edite el mapred-site.xml colocado en /etc/hadoop en hadoop directorio de instilación con los siguientes cambios.

$ cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

Cambios de configuración en el archivo yarn-site.xml

Editar yarn-site.xml con las siguientes entradas.

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

Inicio del clúster de Hadoop

Formatee el namenode antes de usarlo por primera vez. Como usuario de hadoop, ejecute el siguiente comando para formatear el Namenode.

$ hdfs namenode -format
[hadoop@hadoop ~]$ hdfs namenode -format
19/04/13 11:54:10 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   user = hadoop
STARTUP_MSG:   host = hadoop.sandbox.com/192.168.1.108
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.8.5
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension     = 30000
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
19/04/13 11:54:18 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
19/04/13 11:54:18 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
19/04/13 11:54:18 INFO util.GSet: Computing capacity for map NameNodeRetryCache
19/04/13 11:54:18 INFO util.GSet: VM type       = 64-bit
19/04/13 11:54:18 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
19/04/13 11:54:18 INFO util.GSet: capacity      = 2^15 = 32768 entries
19/04/13 11:54:18 INFO namenode.FSImage: Allocated new BlockPoolId: BP-415167234-192.168.1.108-1555142058167
19/04/13 11:54:18 INFO common.Storage: Storage directory /home/hadoop/hdfs/namenode has been successfully formatted.
19/04/13 11:54:18 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
19/04/13 11:54:18 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 323 bytes saved in 0 seconds.
19/04/13 11:54:18 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
19/04/13 11:54:18 INFO util.ExitUtil: Exiting with status 0
19/04/13 11:54:18 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop.sandbox.com/192.168.1.108
************************************************************/

Una vez que se haya formateado Namenode, inicie HDFS usando start-dfs.sh guión.

$ start-dfs.sh 
[hadoop@hadoop ~]$ start-dfs.sh
Starting namenodes on [hadoop.sandbox.com]
hadoop.sandbox.com: starting namenode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-namenode-hadoop.sandbox.com.out
hadoop.sandbox.com: starting datanode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-datanode-hadoop.sandbox.com.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
[email protected]'s password:
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-secondarynamenode-hadoop.sandbox.com.out

Para iniciar los servicios de YARN, debe ejecutar el script de inicio de hilo, es decir, start-yarn.sh

$ start-yarn.sh
[hadoop@hadoop ~]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-resourcemanager-hadoop.sandbox.com.out
hadoop.sandbox.com: starting nodemanager, logging to /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-nodemanager-hadoop.sandbox.com.out

Para verificar que todos los servicios/daemons de Hadoop se hayan iniciado correctamente, puede utilizar jps comando.

$ jps
2033 NameNode
2340 SecondaryNameNode
2566 ResourceManager
2983 Jps
2139 DataNode
2671 NodeManager

Ahora podemos verificar la versión actual de Hadoop que puede usar a continuación:

$ hadoop version

o

$ hdfs version
[hadoop@hadoop ~]$ hadoop version
Hadoop 2.8.5
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8
Compiled by jdu on 2018-09-10T03:32Z
Compiled with protoc 2.5.0
From source with checksum 9942ca5c745417c14e318835f420733
This command was run using /home/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar

[hadoop@hadoop ~]$ hdfs version
Hadoop 2.8.5
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8
Compiled by jdu on 2018-09-10T03:32Z
Compiled with protoc 2.5.0
From source with checksum 9942ca5c745417c14e318835f420733
This command was run using /home/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar
[hadoop@hadoop ~]$

Interfaz de línea de comandos HDFS

Para acceder a HDFS y crear algunos directorios en la parte superior de DFS, puede usar HDFS CLI.

$ hdfs dfs -mkdir /testdata
$ hdfs dfs -mkdir /hadoopdata
$ hdfs dfs -ls /
[hadoop@hadoop ~]$ hdfs dfs -ls /
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2019-04-13 11:58 /hadoopdata
drwxr-xr-x   - hadoop supergroup          0 2019-04-13 11:59 /testdata

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 cualquiera de los navegadores como Google Chrome/Mozilla Firefox.

Interfaz de usuario web de Namenode:http://<hadoop cluster hostname/IP address>:50070

Interfaz de usuario web de Namenode.

Información detallada de HDFS.

Exploración de directorios HDFS.

La interfaz web de YARN Resource Manager (RM) mostrará todos los trabajos en ejecución en Hadoop Cluster actual.

Interfaz de usuario web de Resource Manager:http://<hadoop cluster hostname/IP address>:8088

Interfaz de usuario web del administrador de recursos (YARN).

Conclusión

El mundo está cambiando la forma en que opera actualmente y Big-data está jugando un papel importante en esta fase. Hadoop es un marco que nos facilita la vida mientras trabajamos en grandes conjuntos de datos. Hay mejoras en todos los frentes. El futuro es emocionante.


Cent OS
  1. Cómo instalar redmine en RHEL 8 / CentOS 8 Linux

  2. Cómo instalar Perl en RHEL 8 / CentOS 8 Linux

  3. Cómo instalar apache tomcat en Linux RHEL 8 / CentOS 8

  4. Cómo instalar un servidor DNS en RHEL 8 / CentOS 8 Linux

  5. Cómo instalar PostgreSQL en CentOS 8 / Rocky Linux 8 / RHEL 8

Cómo instalar wget en RHEL 8 / CentOS 8 Linux

Cómo instalar el archivo bin en RHEL 8 / CentOS 8 Linux

Cómo instalar VLC Player en CentOS 8 / RHEL 8 Linux

Cómo instalar WordPress en RHEL 8 / CentOS 8 Linux

Cómo instalar GIMP en CentOS 8 / RHEL 8 Linux

Cómo instalar Foreman en CentOS 7 / RHEL 7 / Oracle Linux 7

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema RHEL 8 / CentOS 8
    Software Hadoop 2.8.5, Oracle JDK 1.8
    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