工作失敗與洗牌獲取失敗

洗牌獲取失敗可能發生如果你修改了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. 提交你的工作。
這篇文章有用嗎?