我有一个安装了 Cloudera Hadoop 的小型集群。几天后,我注意到运行ifconfig -a
命令时经常出现错误/掉线/帧。(从高层的角度来看,map reduce 作业会顺利运行而不会出现错误,从最终用户的角度来看也没有错误,我想知道如果我做点什么,性能会更好)
所有节点,包括namenode,都由同一个redhat kickstart 服务器安装和配置,遵循相同的配方,我会说它们是“相同的”。但是,我没有注意到名称节点上的任何网络错误,并且所有数据节点上始终存在网络错误。
例如,我的名称节点看起来像:
namenode.datafireball.com | success | rc=0 >>
eth4 Link encap:Ethernet HWaddr ...
inet addr:10.0.188.84 Bcast:10.0.191.255 Mask:...
inet6 addr: xxxfe56:5632/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:11711470 errors:0 dropped:0 overruns:0 frame:0
TX packets:6195067 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6548704769 (6.0 GiB) TX bytes:12093046450 (11.2 GiB)
数据节点:
datanode1.datafireball.com | success | rc=0 >>
eth4 Link encap:Ethernet HWaddr ...
inet addr:10.0.188.87 Bcast:10.0.191.255 Mask:...
inet6 addr: xxxff24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:27474152 errors:0 dropped:36072 overruns:36072 frame:36072
TX packets:28905940 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:158509736560 (147.6 GiB) TX bytes:180857576718 (168.4 GiB)
我还按照迈克尔的教程做了一些压力测试,我可以看到随着工作的进行错误越来越多。所以我第一次设置时留下了一些错误。
仅供参考,我们在一个盒子里有两个 NIC 卡,前 4 个端口是嵌入式 NIC 卡03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
,我们根本不使用,我们使用0e:00.0 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
的是 10Gb NIC。
这是固件的输出和 NIC 卡的一些一般信息:
$ ethtool -i eth4
driver: mlx4_en
version: 2.0 (Dec 2011)
firmware-version: 2.8.600
bus-info: 0000:0e:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
我很惊讶地发现数据节点会有网络错误,而名称节点没有,因为它们具有相同的设置和配置。谁能给我一些指导?