Networking Hadoop网络系统调用研究 既然hadoop src中使用了Socket,我猜是TCP连接发送/recv消息和文件,对吗 JVM如何将这些Socket实例转换为Linux系统调用,是Socket/send还是select/poll 如果都是关于select/poll的,我仍然可以通过相关的套接字系统调用获得ip/port,对吗 当我在terasort期间收集所有sys_调用(1个主节点,3个从节点)时,我收到了很少的connect/accept/socket sys_调用,并且它们在sockaddr结构中没有任何LAN ip(0或奇怪的,IPv4)。有很多select/poll系统调用,这合理吗

Networking Hadoop网络系统调用研究 既然hadoop src中使用了Socket,我猜是TCP连接发送/recv消息和文件,对吗 JVM如何将这些Socket实例转换为Linux系统调用,是Socket/send还是select/poll 如果都是关于select/poll的,我仍然可以通过相关的套接字系统调用获得ip/port,对吗 当我在terasort期间收集所有sys_调用(1个主节点,3个从节点)时,我收到了很少的connect/accept/socket sys_调用,并且它们在sockaddr结构中没有任何LAN ip(0或奇怪的,IPv4)。有很多select/poll系统调用,这合理吗,networking,hadoop,jvm,system-calls,Networking,Hadoop,Jvm,System Calls,您可以使用“netstat--tcp-n”命令来检查当前的tcp连接。我想Hadoop应该使用TCP 您可能需要使用strace来启动Hadoop JVM。strace将打印正在运行的应用程序使用的系统调用。通常应用程序使用sys_poll检查连接FD的状态,并使用read/write或sendto/recvfrom syscall接收传输数据包 ? 对,这些系统调用在连接设置期间仅通过sys_socket系统调用调用一次,然后应用程序在该套接字上执行许多轮询、传输或接收操作

您可以使用“netstat--tcp-n”命令来检查当前的tcp连接。我想Hadoop应该使用TCP

  • 您可能需要使用strace来启动Hadoop JVM。strace将打印正在运行的应用程序使用的系统调用。通常应用程序使用sys_poll检查连接FD的状态,并使用read/write或sendto/recvfrom syscall接收传输数据包

  • ?

  • 对,这些系统调用在连接设置期间仅通过sys_socket系统调用调用一次,然后应用程序在该套接字上执行许多轮询、传输或接收操作