2

Cloudera Hadoop がインストールされた小さなクラスターがあります。数日後、ifconfig -aコマンドを実行すると、常にエラー/ドロップ/フレームがあることに気付きました。(大まかな観点から見ると、map reduce ジョブはエラーなしでスムーズに実行され、エンド ユーザーの観点からはエラーはありません。何かを行うと、パフォーマンスが大幅に向上するのではないかと考えています)

namenode を含むすべてのノードは、同じレシピに従って、同じ Redhat キックスタート サーバーによってインストールおよび構成されます。それらは「同じ」と言えます。ただし、namenode でのネットワーク エラーには気付かず、ネットワーク エラーはすべての datanode で一貫して存在します。

たとえば、私の namenode は次のようになります。

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)  

また、 Michael のチュートリアルに従ってストレス テストを行ったところ、作業が進むにつれてエラーが増加することがわかりました。そのため、最初にセットアップしたときにいくつかのエラーが残っています。

参考までに、1 つのボックスに 2 つの NIC カードが入っています。最初の 4 つのポートは、03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)まったく使用していない組み込みの NIC カードで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

データノードにはネットワークエラーがあり、namenode には同じセットアップと構成があるため、ネットワークエラーが発生しないことに非常に驚いています。誰でも私にいくつかのガイダンスを与えることができますか?

4

1 に答える 1

0

B.Wさん!

あなたの質問に答えると、各コンポーネントの機能に基づく私の仮説では、namenode はメタデータ情報のみを処理し、ブロックとサーバーの場所のみを管理し、要求と応答はネットワーク上の帯域幅をほとんど使用しません。データノードは「大きな」データを転送するため、ネットワーク帯域幅全体を使用して大量のデータを処理し、パケットをドロップします。

ジャンボ フレームが有効になっている場合 (MTU = 9000)、このサーバー ネットワーク インターフェイス構成に接続されているスイッチ ポートを評価することをお勧めします。

サーバーのネットワーク インターフェイス設定で同じ構成を確認する必要があります。

いずれかの時点で構成が欠落しているかどうかを確認する優れた方法は、サーバー SO コンソールで実行されるコマンド「ifconfig -a」を使用して、削除されたパッケージがあるかどうかを確認することです。

[root@<hostname> ~]# ifconfig -a
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 9000
inet Ip.Ad.re.ss netmask net.m.as.k broadcast bro.d.ca.st
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 522849928 bytes 80049415915 (74.5 GiB)
RX errors 274721 dropped 276064 overruns 0 frame 274721
TX packets 520714273 bytes 72697966414 (67.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

この場合、ジャンボ フレームはサーバー ネットワーク インターフェイスでのみ設定されます。

よろしく、カゼイロ。

于 2020-03-17T13:56:26.603 に答える