scala – 使用Spark的间歇超时异常

我有一个有10个节点的Spark集群,我第一次使用Spark上下文后会得到这个异常:

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,但问题不在这里,因为我使用火​​花版本1.1.0在主或从和客户端.

我尝试将超时时间延长到120秒,但仍然无法解决问题.

我通过脚本来混合环境,我正在使用context.addJar将我的代码包含到类路径中.
这个问题是间歇性的,我不知道如何跟踪为什么会发生这种情况.任何人在配置火花簇时都知道如何解决这个问题?

解决方法

我们有一个类似的问题,很难调试和隔离.长故事短 – Spark使用Akka,这对于解析为IP地址的FQDN主机名非常挑剔.即使您在所有地方指定了IP地址,这还不够.答案 here帮助我们隔离问题.

运行一个有用的测试是运行netcat -l< port>在主机上运行nc -vz< host> <端口>对工作人员进行连接测试.使用IP地址和FQDN运行测试.您可以从下面的日志片段中获取Spark从WARN消息中使用的名称.对我们来说是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.host和spark.driver.port属性.这是因为我们有两台IP地址的机器,并且FQDN解决错误的IP地址.

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

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...