Problème D'accès À HDFS WebUI

1 Description du problème

Dans un cluster Hadoop composé de 3 datanodes, 1 namenode et 1 secondary namenode, l’état est vérifié par commande comme suit, tout semble normal.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
(base) root@node4:~# hdfs dfsadmin -report
Configured Capacity: 168292061184 (156.73 GB)
Present Capacity: 128058142720 (119.26 GB)
DFS Remaining: 128058011648 (119.26 GB)
DFS Used: 131072 (128 KB)
DFS Used%: 0.00%
Replicated Blocks:
	Under replicated blocks: 0
	Blocks with corrupt replicas: 0
	Missing blocks: 0
	Missing blocks (with replication factor 1): 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0
Erasure Coded Block Groups: 
	Low redundancy block groups: 0
	Block groups with corrupt internal blocks: 0
	Missing block groups: 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (3):

Oui, tout semble normal. Cependant, la page Web HDFS 50070 n’est pas accessible, et le port de fichier HDFS 9000 n’est pas utilisable non plus.

2 Investigation

Après avoir exclu les problèmes de pare-feu et de groupes de sécurité, vérifiez l’utilisation de tous les ports de service :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
(base) root@node4:~# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      516/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1460/sshd: /usr/sbi 
tcp        0      0 192.168.0.165:8088      0.0.0.0:*               LISTEN      111907/java         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      107217/sshd: root@p 
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      110809/sshd: root@p 
tcp        0      0 127.0.0.1:6013          0.0.0.0:*               LISTEN      105767/sshd: root@p 
tcp        0      0 192.168.0.165:8030      0.0.0.0:*               LISTEN      111907/java         
tcp        0      0 192.168.0.165:8031      0.0.0.0:*               LISTEN      111907/java         
tcp        0      0 192.168.0.165:8032      0.0.0.0:*               LISTEN      111907/java         
tcp        0      0 192.168.0.165:8033      0.0.0.0:*               LISTEN      111907/java         
tcp        0      0 192.168.0.165:9000      0.0.0.0:*               LISTEN      111496/java         
tcp        0      0 0.0.0.0:9870            0.0.0.0:*               LISTEN      111496/java         

Deux problèmes ont été découverts :

  1. Le port 50070 n’est pas dans la liste
  2. Le port 9000 est ouvert sur une IP interne

3 Solution

3.1 Problème 1 : Pas de service sur le port 50070

Après une enquête minutieuse, il a été découvert que les temps ont changé, le port WEB HDFS de Hadoop 2.x était 50070, mais dans Hadoop 3.x, il est devenu 9870. Par conséquent, accéder à 9870 permet d’accéder normalement à l’interface Web UI.

3.2 Problème 2 : Pas de service sur le port 9000

Encore une fois, il s’agit d’une modification de la configuration de l’adresse d’écoute par défaut, il suffit de modifier la valeur fs.defaultFS dans le fichier de configuration.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<configuration>
        <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://0.0.0.0:9000</value>
         </property>
         <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/usr/hadoop/tmp</value>
                 <description>Une base pour d'autres répertoires temporaires.</description>
         </property>
</configuration>
Buy me a coffee~
Tim AlipayAlipay
Tim PayPalPayPal
Tim WeChat PayWeChat Pay
0%