ubuntu server18.04 instalar hadoop3.2.1 cluster

Este documento describe cómo construir un clúster de hadoop completamente distribuido con un nodo maestro y dos nodos de datos.

Entorno de configuración

1. Entorno del sistema

Esta vez, el servidor de nodo está configurado como tres servidores ubuntu locales 18.04, la captura de pantalla de configuración de la máquina virtual es la siguiente:
Inserte la descripción de la imagen aquí
la ip de las tres máquinas es la siguiente:

  • 192.168.1.113
  • 192.168.1.114
  • 192.168.1.115

2. Instale el entorno java

apt install openjdk-8-jdk-headless

Configure las variables de entorno JAVA, agregue el siguiente contenido al final del archivo .profile en el directorio raíz del usuario actual:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Nota: El directorio raíz del usuario actual se encuentra en el directorio / home / su nombre de usuario. Si no ve el archivo .profile, vaya directamente a vim. De hecho, la dirección del archivo real de este archivo se encuentra en el directorio etc. No lo analizaremos aquí.

Utilice el comando de origen para que sea efectivo de inmediato

source .profile

Puede utilizar el siguiente comando para probar si la configuración es correcta

echo $JAVA_HOME

3. Configurar host

vim /etc/hosts

Agregue el siguiente contenido, de acuerdo con la configuración de IP del servidor personal

# 注意每个机器都要配置三个

192.168.1.113 master
192.168.1.114 slave1
192.168.1.115 slave2

4. Configure el inicio de sesión sin contraseña

Clave de producción

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

El maestro inicia sesión en el esclavo sin contraseña

# 分别对应添加另外两个节点的就行

ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

Pruebe el inicio de sesión sin contraseña

ssh master 
ssh slave1
ssh slave2

Construcción del nodo Hadoop

1. Descargue el paquete de instalación y cree un directorio de Hadoop

Configure el nodo maestro primero

#下载  
wget http://apache.claz.org/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
#解压到 /usr/local 目录
sudo tar -xzvf  hadoop-3.2.1.tar.gz    -C /usr/local 
#重命名文件夹  
cd /usr/local/ 
sudo mv  hadoop-3.2.1  hadoop

La mejor manera de descargarlo es descargarlo directamente con Thunder y luego usar winscp para cargarlo. Esto es más rápido, pero wget es realmente lento.

2. Configure las variables de entorno de Hadoop del nodo principal.

Al igual que configurar variables de entorno JDK, edite .profilearchivos en el directorio de usuario y agregue variables de entorno de Hadoop:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

Copie el código y ejecute source.profile para un efecto inmediato

3. Configure el archivo de configuración de Hadoop del nodo principal

Varios componentes de Hadoop se configuran con el archivo XML, los archivos de configuración se colocan en el /usr/local/hadoop/etc/hadoopdirectorio:

  • core-site.xml: configure propiedades comunes, como la configuración de E / S comúnmente utilizada por HDFS y MapReduce, etc.
  • hdfs-site.xml: configuración del demonio de Hadoop, incluido namenode, namenode auxiliar y datanode, etc.
  • mapred-site.xml: configuración del demonio MapReduce
  • yarn-site.xml: configuración relacionada con la programación de recursos

Nota: La sangría es problemática al copiar vim, se recomienda usar el editor de winscp para copiar y pegar

a. Edite el archivo core-site.xml y modifique el contenido de la siguiente manera:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

Copiar la descripción del parámetro del código:

  • fs.defaultFS: el sistema de archivos predeterminado. Los clientes HDFS necesitan este parámetro para acceder a HDFS
  • hadoop.tmp.dir: especifica el directorio temporal para el almacenamiento de datos de Hadoop. Otros directorios se basarán en esta ruta. Se recomienda configurarlo en un lugar con suficiente espacio en lugar del predeterminado / tmp

Si el parámetro hadoop.tmp.dir no está configurado, el sistema usa el directorio temporal predeterminado: / tmp / hadoo-hadoop. Este directorio se eliminará después de cada reinicio y el formateo se debe ejecutar nuevamente, de lo contrario se producirá un error.

b. Edite hdfs-site.xml y modifique el contenido de la siguiente manera:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/hadoop/hdfs/data</value>
    </property>
</configuration>

Copiar la descripción del parámetro del código:

  • dfs.replication: el número de copias del bloque de datos
  • dfs.name.dir: especifique el directorio de almacenamiento de archivos del nodo namenode
  • dfs.data.dir: especifique el directorio de almacenamiento de archivos del nodo de datos

c. Edite mapred-site.xml y modifique el contenido de la siguiente manera:

<configuration>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.application.classpath</name>
    <value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
  </property>
</configuration>

Copie el código d. Edite yarn-site.xml y modifique el contenido de la siguiente manera:

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME</value>
    </property>
</configuration>

Copiar el código e. Editar trabajadores, modificar el contenido de la siguiente manera:

slave1
slave2

5. Configuración de los otros dos nodos esclavos

Empaquete el Hadoop configurado del nodo maestro y envíelo a los otros dos nodos:

#打包hadoop包
tar -cxf hadoop.tar.gz /usr/local/hadoop

Cabe señalar aquí que Spark se reemplaza con su nombre de usuario

scp ./hadoop.tar.gz  spark@slave1:~
scp ./hadoop.tar.gz  spark@slave2:~

Copie el código para presurizar el paquete Hadoop en otros nodos al directorio / usr / local

sudo tar -xzvf hadoop.tar.gz -C /usr/local/

Copie el código para configurar las variables de entorno de Hadoop de los nodos Slave1 y Slaver2:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

Hacer que las variables de entorno surtan efecto

source .profile

6. Configuración complementaria

Modifique los tres nodos /usr/local/hadoop/etc/hadoop/hadoop-env.sh, agregue las siguientes variables de entorno JAVA

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

Asignar 777 a todos los archivos

# /usr/local
chmod -R 777 ./hadoop/

En la ruta / hadoop / sbin:
agregue los siguientes parámetros en la parte superior de los archivos start-dfs.sh y stop-dfs.sh

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

Además, start-yarn.sh y stop-yarn.sh también deben agregar lo siguiente en la parte superior:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

Iniciar el clúster

1. Formatee el sistema de archivos HDFS

Ingrese al directorio Hadoop del nodo maestro y realice las siguientes operaciones:

bin/hadoop namenode -format

2. Inicie el clúster

# /usr/local/hadoop/sbin
start-all.sh

Visualización, simplemente reemplace la ip del nodo maestro

http://192.168.1.113:9870/
http://192.168.1.113:8088/

Supongo que te gusta

Origin blog.csdn.net/wy_97/article/details/104792965
Recomendado
Clasificación