Preparación ambiental:
Prepare 3 máquinas virtuales (CentOS 7), una maestra y dos esclavas. El maestro funciona como NameNode, DataNode, ResourceManager y NodeManager, y el esclavo funciona como DataNode y NodeManager.
maestro: 10.0.83.71
esclavo1: 10.0.83.72
esclavo2: 10.0.83.73
Ejecutar en cada máquina:
Apague el firewall:
systemctl detener firewalld.service
systemctl deshabilitar firewalld.service
Modificar el nombre de host correspondiente a cada ip y modificar el archivo de hosts
vi / etc / hosts
10.0.83.71 nodo1
10.0.83.72
nodo2 10.0.83.73 nodo3
Configure 3 máquinas virtuales para iniciar sesión sin secreto
Ejecutar respectivamente en 71, 72, 73: ssh-keygen -t rsa
Realice una copia a las otras 2 direcciones de máquina en cada máquina:
ssh-copy-id 10.0.83.71
ssh-copy-id 10.0.83.72
ssh-copy-id 10.0.83.73
Cree almacenamiento de datos y otros directorios necesarios
mkdir -p / data / hdfs / nombre
mkdir -p / data / hdfs / data
mkdir -p / data / hdfs / tmp
mkdir -p / opt /
hora sincronizada:
yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-timezone Asia / Shanghai
timedatectl set-ntp yes
Ejecutar en el maestro:
cd / opt /
wget https://apache.mirrors.nublue.co.uk/hadoop/common/hadoop-3.1.4/hadoop-3.1.4.tar.gz
tar zxvf hadoop-3.1.4.tar.gz
mv hadoop-3.1.4 hadoop
scp -r hadoop root @ node2: / opt /
scp -r hadoop root @ node3: / opt /
Cree un grupo de usuarios separado hadoop para los componentes de hadoop, cree usuarios hdfs, yarn, mapred
groupadd hadoop
useradd hdfs -g hadoop
useradd yarn -g hadoop
useradd mapred -g hadoop
Crea directorios relacionados
Directorio de almacenamiento de datos
NameNode Directorio de almacenamiento de datos: / data / hadoop / namenode
DataNode Directorio de almacenamiento de datos: / data / hadoop / datanode
Directorio de almacenamiento de datos temporal: / data / hadoop / tmp
HADOOP_MAPRED_HOME:
mkdir -p / data / hadoop / namenode
mkdir -p / data / hadoop / datanode
mkdir -p / data / hadoop / tmp
chown -R hdfs: hadoop / opt / hadoop
chown -R hdfs: hadoop / data / hadoop
Cree un nuevo directorio de registro
mkdir / var / log / hadoop
chown hdfs: hadoop / var / log / hadoop
chmod -R 770 / var / log / hadoop
新建 pid 目录
mkdir / var / run / hadoop
chown hdfs: hadoop / var / run / hadoop
chmod -R 770 / var / run / hadoop
fuente / etc / profile
3. Prueba de funcionamiento del clúster
3.1 Iniciar el clúster
Formato namenode
su hdfs -c'hdfs namenode -format '
2. Iniciar namenode
su hdfs -c 'hdfs --daemon start namenode'
Inicie cada nodo de datanode por separado
su hdfs -c'hdfs --daemon start datanode '
启动 resourcemanager
su yarn -c 'yarn --daemon start resourcemanager'
Inicie cada nodo nodemanager por separado
su yarn -c'yarn --daemon start nodemanager '
启动 historyserver
su mapred -c 'mr-jobhistory-daemon.sh iniciar historyserver'
3.2 Acceso a WebUI
Interfaz de usuario de HDFS http://10.0.83.71:50070/
Interfaz de usuario de YARN http://10.0.83.71:8088/
3.3 Detener el clúster
1. Detener namenode
su hdfs -c'hdfs --daemon detener namenode '
Detenga el nodo datanode
su hdfs -c'hdfs --daemon stop datanode '
停止 resourcemanager
su yarn -c 'yarn --daemon detener resourcemanager'
Detenga el nodo nodemanager
su yarn -c'yarn --daemon stop nodemanager '
停止 historyserver
su mapred -c 'mr-jobhistory-daemon.sh detener historyserver'
3.4 Otras instrucciones de funcionamiento
Ver el directorio hdfs
su hdfs -c'hdfs dfs -ls / '
Cree un nuevo directorio hdfs
su hdfs -c'hdfs dfs -mkdir PATH '
Modifique el propietario del archivo
su hdfs -c'hdfs dfs -chown OWNER: GROUP PATH '
Modificar los permisos de archivo
su hdfs -c'hdfs dfs -chmod 644 PATH '
webhdfs 操作
curl -i " http: // <HOST>: <PUERTO> / webhdfs / v1 / <PATH>? op = LISTSTATUS "
curl -i -X DELETE " http: // <host>: <port> / webhdfs / v1 / <path>? op = DELETE
[& recursive = <true | false>]"
curl -i -X PUT " http: // <HOST>: <PUERTO> / webhdfs / v1 / <PATH>? op = CREATE
[& oversrite = <true | false>] [& blocksize = <LONG>] [& replication = < CORTO>]
[& permiso = <OCTAL>] [& tamaño de búfer = <INT>] [& noredirect = <verdadero | falso>] "
curl -i -X PUT " http: // <HOST>: <PUERTO> / webhdfs / v1 / <PATH>? op = SETOWNER
[& owner = <USER>] [& group = <GROUP>]"
curl -i -X PUT " http: // <HOST>: <PUERTO> / webhdfs / v1 / <PATH>? op = SETPERMISSION
[& permiso = <OCTAL>]"