使用Spark的间歇超时异常

时间:2014-11-20 12:44:11

标签: scala apache-spark

我有一个包含10个节点的Spark集群,我第一次使用Spark Context后得到了这个异常:

14/11/20 11:15:13 ERROR UserGroupInformation: PriviledgedActionException as:iuberdata (auth:SIMPLE) cause:java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException: Unknown exception in doAs
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1421)
    at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:52)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:113)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:156)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: java.security.PrivilegedActionException: java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
    ... 4 more

guy遇到了类似的问题,但我已经尝试过他的解决方案而且没有用。

同样的异常也会发生here,但问题不在于此处,因为我在主服务器或从服务器以及客户端使用spark版本1.1.0。

我已经尝试将超时时间增加到120秒,但它仍然没有解决问题。

我通过脚本整合环境,并且我使用context.addJar将我的代码包含在类路径中。 这个问题是间歇性的,我不知道如何跟踪它为什么会发生。在配置一个知道如何解决它的火花簇时,有人遇到过这个问题吗?

3 个答案:

答案 0 :(得分:8)

我们遇到了类似的问题,很难调试和隔离。长话短说 - Spark使用Akka,这对解析IP地址的FQDN主机名非常挑剔。即使您在所有位置指定IP地址也是不够的。答案here帮助我们解决了问题。

要运行的有用测试是在主服务器上运行netcat -l <port>并在工作服务器上运行nc -vz <host> <port>以测试连接性。使用IP地址和FQDN运行测试。您可以从下面的日志片段中的WARN消息中获取Spark正在使用的名称。对我们来说是host032s4.staging.companynameremoved.info。我们的IP地址测试通过,FQDN测试失败,因为我们的DNS设置不正确。

INFO 2015-07-24 10:33:45 Remoting: Remoting started; listening on addresses :[akka.tcp://driverPropsFetcher@10.40.246.168:35455]
INFO 2015-07-24 10:33:45 Remoting: Remoting now listens on addresses: [akka.tcp://driverPropsFetcher@10.40.246.168:35455]
INFO 2015-07-24 10:33:45 org.apache.spark.util.Utils: Successfully started service 'driverPropsFetcher' on port 35455.
WARN 2015-07-24 10:33:45 Remoting: Tried to associate with unreachable remote address [akka.tcp://sparkDriver@host032s4.staging.companynameremoved.info:50855]. Address is now gated for 60000 ms, all messages to this address will be delivered to dead letters.
ERROR 2015-07-24 10:34:15 org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:skumar cause:java.util.concurrent.TimeoutException: Futures timed out after [30 seconds]

我们要做的另一件事是在spark提交脚本中指定spark.driver.hostspark.driver.port属性。这是因为我们有两台IP地址的机器,并且FQDN解析为错误的IP地址。

确保您的网络和DNS条目正确无误!!

答案 1 :(得分:5)

防火墙未配置,在某些情况下,它不允许从属设备连接到群集。 这会生成超时问题,因为从站无法连接到服务器。 如果您遇到此超时,请检查防火墙配置。

答案 2 :(得分:0)