Ошибка сети кластера данных кластера Hadoop
У меня небольшой кластер с установкой Cloudera Hadoop. Через несколько дней я заметил, что при запуске постоянно возникают ошибки / сбрасывается / кадр ifconfig -a
команда. (С точки зрения высокого уровня, работа по уменьшению карты будет выполняться без ошибок, и с точки зрения конечного пользователя ошибок нет, мне интересно, если я что-то сделаю, производительность будет намного лучше)
Все узлы, включая namenode, устанавливаются и настраиваются на одном и том же сервере кикстарта redhat, следуя одному и тому же рецепту, и я бы сказал, что они "одинаковые". Тем не менее, я не заметил никаких сетевых ошибок на 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)
Я также провел стресс-тестирование после урока Майкла, и я вижу, что ошибки увеличиваются по мере выполнения работы. Так что при первой настройке осталась какая-то ошибка.
К вашему сведению, у нас есть две карты NIC в одной коробке, первые 4 порта - встроенная ник-карта 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
Я так удивлен, обнаружив, что у узла данных будут сетевые ошибки, а у namenode нет, так как они имеют одинаковую настройку и конфигурацию. Кто-нибудь может дать мне руководство?
0 ответов
B.Mr.W.!
Отвечая на ваш вопрос, моя гипотеза, основанная на функциональности каждого компонента, namenode обрабатывает только информацию метаданных, управляя только местоположением блоков и серверов, с запросами и ответами, использующими небольшую полосу пропускания в сети. Узел данных отвечает за массивные данные, полностью используя пропускную способность сети, поскольку он передает "большие" данные, а значит, и отброшенные пакеты.
Я предлагаю вам оценить порт коммутатора, подключенный к этой конфигурации сетевого интерфейса сервера, если включен jumbo-кадр (MTU = 9000).
Такая же конфигурация должна быть проверена в настройках сетевого интерфейса для сервера.
Отличный способ проверить, отсутствует ли конфигурация в одной из точек, - это проверить наличие сброшенных пакетов с помощью команды ifconfig -a, выполняемой в консоли SO сервера:
[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
В этом случае jumbo frame настраивается только в сетевом интерфейсе сервера.
С уважением, Касейро.