問題
你看到間歇使用洗牌取回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磚工作區。
- 重新啟動集群。
- 提交你的工作。