На Hadoop Сетевой системный вызов - PullRequest
1 голос
/ 01 марта 2012
  1. Поскольку в hadoop src используется Socket, предположите, что это TCP-соединения для отправки / записи сообщений и файлов, верно?
  2. Как JVM переводит эти Socket экземпляры в системные вызовы Linux,этот сокет / отправить или выбрать / опросить?
  3. Если все дело в выборе / опросе, я все еще могу получить IP / порт через относительные системные вызовы сокета, верно?
  4. Когда я собираю всеsys_calls во время terasort (1 master, 3 slave), я получил редкие sys_calls connect / accept / socket, и они не имеют IP-адреса локальной сети в структуре sockaddr (0 или странные, IPv4).Есть группы select / poll sys_calls, это разумно?

1 Ответ

0 голосов
/ 14 декабря 2012
  1. вы можете использовать команды "netstat --tcp -n" для проверки текущего соединения tcp.Я полагаю, что Hadoop должен использовать TCP.

  2. , вам может понадобиться использовать strace для запуска вашей Hadoop JVM.Strace будет печатать системные вызовы, используемые запущенным приложением.Обычное приложение использует sys_poll для проверки статуса подключения FD и использует чтение / запись или sendto / recv из системного вызова для получения передаваемого пакета.эти системные вызовы вызываются только один раз во время установки соединения через системный вызов sys_socket, после чего приложение выполняет много опросов, передает или получает операции на этом сокете.

...