高延迟网络中的java

时间:2014-03-04 18:25:56

标签: java networking hadoop

我正在使用Hadoop在位于远程主机中的HDFS之间复制文件。我的问题是这些主机之间的网络具有高延迟(> 1秒),有时Hadoop会发生java.net.NoRouteToHostException: No route to host;的错误。

我认为这个问题是因为延迟而发生的。 使用ping可以访问主机,但有一点延迟。这是一个ping的例子。在一开始它无法到达目标主机,但它确实如此。

WorkGroup4-0:~# ping WorkGroup1-4ping: unknown host WorkGroup1-4
WorkGroup4-0:~# ping WorkGroup1-1
PING WorkGroup1-1 (172.16.100.2) 56(84) bytes of data.
From WorkGroup4-0 (172.16.100.13) icmp_seq=1 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=2 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=3 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=4 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=5 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=6 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=7 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=8 Destination Host Unreachable
From WorkGroup4-0 (172.16.100.13) icmp_seq=9 Destination Host Unreachable
64 bytes from WorkGroup1-1 (172.16.100.2): icmp_req=12 ttl=64 time=1036 ms
64 bytes from WorkGroup1-1 (172.16.100.2): icmp_req=15 ttl=64 time=996 ms
^C
--- WorkGroup1-1 ping statistics ---
24 packets transmitted, 2 received, +9 errors, 91% packet loss, time 23134ms
rtt min/avg/max/mdev = 996.201/1016.462/1036.724/20.286 ms, pipe 3

有没有办法为具有高延迟的网络配置JVM,以便尝试连接到远程主机的时间更长?

1 个答案:

答案 0 :(得分:0)

多么糟糕......但是好的,这是一个要测试的简短列表:

  • dfs.client.failover.connection.retries.on.timeouts,默认为0,2到5之间
  • dfs.client.failover.connection.retries,默认值为0,介于2和5之间
  • dfs.client.failover.max.attempts,默认为15,超过15,低于50

如果您的Hadoop集群内部存在延迟,请考虑Rack Awarness功能并在每个节点上分配一个唯一的rackId,这将告诉Hadoop您的所有节点都是遥远的。

此处有更多信息:http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml