我们有使用 HDFS 文件系统的 Hadoop 集群
问题是将文件从 HDFS 复制到本地文件夹需要花费大量时间
例如通常复制大小为3G需要几秒钟,但在我们的集群机器上需要大约 30 分钟
例如:
su hdfs
hdfs dfs -copyToLocal /data/file_hdfs.zip /var/tmp
在其他会话中,我们得到以下结果15分钟
du -sh /var/tmp/*
1.1G /var/tmp/file_hdfs.zip.zip._COPYING_
我们已经验证了以下内容
所有数据节点机器的 CPU 负载平均值正常
所有机器的 CPU 利用率都正常
MTU 设置似乎没问题(所有节点上的 MTU 设置均为 1500)
HDFS 是健康的,我们检查了
hdfs fsck /
记忆很好(来自
free -g
)
我们还检查了 NIC
ethtool p1p1
Settings for p1p1:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
我们还需要验证什么才能找出为什么将文件从 HDFS 复制到本地文件夹需要很长时间
我们还使用工具验证了名称节点机器。iperf3
(名称节点机器是虚拟机)
iperf3 -i 1 -t 60 -c namenode01
Connecting to host namenode01, port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
.
.
[ 4] 56.00-57.00 sec 108 MBytes 903 Mbits/sec 2 327 KBytes
[ 4] 57.00-58.00 sec 103 MBytes 865 Mbits/sec 7 197 KBytes
[ 4] 58.00-59.00 sec 103 MBytes 868 Mbits/sec 4 279 KBytes
[ 4] 59.00-60.00 sec 104 MBytes 871 Mbits/sec 14 335 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 5.99 GBytes 858 Mbits/sec 828 sender
[ 4] 0.00-60.00 sec 5.99 GBytes 857 Mbits/sec receiver
在 namenode03 上
iperf3 -i 10 -s
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-60.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-60.04 sec 5.99 GBytes 857 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201