工作失败与洗牌获取失败

洗牌获取失败可能发生如果你修改了Azure在部署后砖子网CIDR的范围。

写的arjun.kaimaparambilrajan

去年发表在:2023年2月23日

问题

你看到间歇使用洗牌取回Apache火花工作失败的工作。

21/02/01 05:59:55警告TaskSetManager:在舞台上失去了任务0.0 4.0 (TID 4 10.79.1.45执行人0):FetchFailed (BlockManagerId(1 10.79.1.134 4048,没有一个),shuffleId = 1, mapId = 0, reduceId = 0 = org.apache.spark.shuffle消息。FetchFailedException:连接失败/ 10.79.1.134:4048 org.apache.spark.storage.ShuffleBlockFetcherIterator.throwFetchFailedException (ShuffleBlockFetcherIterator.scala: 553) org.apache.spark.storage.ShuffleBlockFetcherIterator.next (ShuffleBlockFetcherIterator.scala: 484) org.apache.spark.storage.ShuffleBlockFetcherIterator.next (ShuffleBlockFetcherIterator.scala: 63)…1更引起的:io.netty.channel.AbstractChannel AnnotatedNoRouteToHostException美元:主持人:没有路线/ 10.79.1.134:4048 sun.nio.ch.SocketChannelImpl。checkConnect(本地方法)

导致

这可能发生,如果你修改了Azure在部署后砖子网CIDR的范围。不支持这种行为。

假设以下细节描述两个场景:

原始Azure砖子网CIDR

  • 私人子网:10.10.0.0/24 (10.10.0.0 - 10.10.0.255)
  • 公共子网:10.10.1.0/24 (10.10.1.0 - 10.10.1.255)

Azure砖子网CIDR的修改

  • 私人子网:10.10.0.0/18 (10.10.0.0 - 10.10.63.255)
  • 公共子网:10.10.64.0/24 (10.10.64.0 - 10.10.127.255)

与原来的设置,一切按预期的方式工作。

使用修改后的设置,如果执行者被分配IP地址的子网范围10.10.1.0 - 10.10.63.255,司机分配一个IP地址的子网范围10.10.0.0 10.10.0.255,执行人之间的通信阻塞是由于防火墙规则限制通信在原始CIDR 10.10.0.0/24的范围。

如果执行者和司机都在10.10.0.0/24分配IP地址,没有沟通受阻,工作运行。然而,这个任务并不保证下修改设置。

解决方案

  1. 恢复任何子网CIDR改变和恢复的原始VNet配置用于创建Azure砖工作区。
  2. 重新启动集群。
  3. 提交你的工作。
这篇文章有用吗?