连接重试失败需要很长时间

默认的Apache Hadoop连接超时的值并重试很高,减少值更快地失败。

写的sivaprasad.cs

最后发表:2022年12月21日

问题

你试图访问一个表在一个偏远的HDFS位置或一个对象存储,您没有权限访问。的选择命令失败,它,但它不会很快失败。它需要十分钟,有时更多,返回ConnectTimeoutException错误消息。

他们最终得到的错误信息:“错误的SQL语句:ConnectTimeoutException:电话1006 - 163012 - faded894 - 10 - 133 - 241 - 86/127.0.1.1analytics.aws.healthverity.com在套接字超时异常:8020失败:org.apache.hadoop.net.ConnectTimeoutException: 20000,米尔斯超时等待通道准备连接。ch: java.nio.channels。SocketChannel [connection-pending远程=analytics.aws.healthverity.com/10.24.12.199:8020];更多细节见:SocketTimeout - HADOOP2 Apache软件基金会”

导致

一切都是做设计,但是默认的Apache Hadoop连接超时的值并重试很高,这就是为什么连接不很快失败。

ipc.client.connect.timeout20000 ipc.client.connect.max.retries.on.timeouts 45

检查共同core-default Hadoop的完整列表。xml值

检查SocketTimeout文档以了解更多的细节。

解决方案

你可以解决这个问题通过减少连接超时的值并重试。

  • ipc.client.connect.timeout值是在几秒钟内。
  • ipc.client.connect.max.retries.on.timeouts值是在失败重试的次数。

在集群的设置这些值火花配置(AWS|Azure)。

如果你不确定使用什么值,这些砖推荐值:

ipc.client.connect.timeout5000 ipc.client.connect.max.retries.on.timeouts 3


这篇文章有用吗?