问题
你看到间歇使用洗牌取回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地址,没有沟通受阻,工作运行。然而,这个任务并不保证下修改设置。
解决方案
- 恢复任何子网CIDR改变和恢复的原始VNet配置用于创建Azure砖工作区。
- 重新启动集群。
- 提交你的工作。