1 問題説明
3つのdatanode、1つのnamenode、および1つのsecondary namenodeで構成されるhadoopクラスターにおいて、コマンドを入力して状態を確認すると、以下のようにすべて正常です。
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) :
はい、見たところ問題はありません。しかし、HDFSのwebページ50070にアクセスできず、HDFSファイルポート9000も使用できません。
2 排査
ファイアウォールやセキュリティグループなどの問題を除外した後、すべてのサービスポートの使用状況を確認します:
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
2つの問題を発見しました:
50070ポートがリストにありません
9000ポートが内部ネットワークIPに開かれています
3 解決
3.1 問題1:50070ポートにサービスがない
詳細に調査した結果、時代が変わり、Hadoop 2.xのHDFS WEBポートは50070でしたが、Hadoop 3.xでは9870に変更されました。したがって、9870にアクセスすればWeb UIに正常にアクセスできます。
3.2 問題2: 9000ポートにサービスがない
これもデフォルトのリスニングアドレスの設定変更によるもので、設定ファイルでfs.defaultFS
の値を変更するだけです。
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> Abase for other temporary directories.</description>
</property>
</configuration>