2

我正在运行一个 Spark 作业,写入一个有 20 个工作人员的 Alluxio 集群(Alluxio 1.6.1)。由于 .Spark 作业无法写入其输出alluxio.exception.status.DeadlineExceededException。在 Alluxio WebUI 中,worker 仍然活着。我怎样才能避免这种失败?

alluxio.exception.status.DeadlineExceededException: Timeout writing to WorkerNetAddress{host=spark-74-44.xxxx, rpcPort=51998, dataPort=51999, webPort=51997, domainSocketPath=} for request type: ALLUXIO_BLOCK
id: 3209355843338240
tier: 0
worker_group {
  host: "spark6-64-156.xxxx"
  rpc_port: 51998
  data_port: 51999
  web_port: 51997
  socket_path: ""
}
4

1 回答 1

2

此错误表明您的 Spark 作业在尝试将数据写入 Alluxio worker 时超时。工作人员可能处于高负载状态,或者与您的 UFS 的连接速度很慢。

默认超时为 30 秒。要增加超时,alluxio.user.network.netty.timeout请在 Spark 端进行配置。

例如,要将超时时间增加到 5 分钟,请使用以下--conf选项spark-submit

$ spark-submit --conf 'spark.executor.extraJavaOptions=-Dalluxio.user.network.netty.timeout=5min' \
               --conf 'spark.driver.extraJavaOptions=-Dalluxio.user.network.netty.timeout=5min' \
               ...

您还可以在spark-defaults.conf文件中设置这些属性,以使它们自动应用于所有作业。

来源:https ://www.alluxio.org/docs/1.6/en/Configuration-Settings.html#spark-jobs

于 2018-11-15T19:06:59.983 回答