Jobb som Miss lyckas med blandade hämtnings problem

Problem

Du ser återkommande Apache Spark jobb haverier på jobb med blanda hämtningar.

21/02/01 05:59:55 WARN TaskSetManager: Lost task 0.0 in stage 4.0 (TID 4, 10.79.1.45, executor 0): FetchFailed(BlockManagerId(1, 10.79.1.134, 4048, None), shuffleId=1, mapId=0, reduceId=0, message=
org.apache.spark.shuffle.FetchFailedException: Failed to connect to /10.79.1.134:4048
at org.apache.spark.storage.ShuffleBlockFetcherIterator.throwFetchFailedException(ShuffleBlockFetcherIterator.scala:553)
at org.apache.spark.storage.ShuffleBlockFetcherIterator.next(ShuffleBlockFetcherIterator.scala:484)
at org.apache.spark.storage.ShuffleBlockFetcherIterator.next(ShuffleBlockFetcherIterator.scala:63)
... 1 more
Caused by: io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException: No route to host: /10.79.1.134:4048
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

Orsak

Detta kan inträffa om du har ändrat CIDR-intervallet för Azure Databricks-undernät efter distributionen. Det här beteendet stöds inte.

Anta att informationen nedan beskriver två scenarier:

CIDR för ursprunglig Azure Databricks-undernät

  • Privat undernät: 10.10.0.0/24 (10.10.0.0-10.10.0.255)
  • Offentligt undernät: 10.10.1.0/24 (10.10.1.0-10.10.1.255)

Ändra Azure Databricks-undernät CIDR

  • Privat undernät: 10.10.0.0/18 (10.10.0.0-10.10.63.255)
  • Offentligt undernät: 10.10.64.0/24 (10.10.64.0-10.10.127.255)

Med de ursprungliga inställningarna fungerar allting som avsett.

Om de ändrade inställningarna har tilldelats IP-adresser i under nätet 10.10.1.0-10.10.63.255 och driv rutinen tilldelats en IP-adress i under nätets intervall 10.10.0.0-10.10.0.255, blockeras kommunikationen mellan körningarna på grund av en brand Väggs regel som begränsar kommunikationen i det ursprungliga CIDR-intervallet 10.10.0.0/24.

Om körningarna och driv rutinen både tilldelas IP-adresser i 10.10.0.0/24 blockeras ingen kommunikation och jobbet körs som avsett. Den här tilldelningen garanteras dock inte under de ändrade inställningarna.

Lösning

  1. Återställ alla CIDR-ändringar för undernät och Återställ den ursprungliga VNet-konfigurationen som du använde för att skapa Azure Databricks arbets ytan.
  2. Starta om klustret.
  3. Skicka dina jobb på nytt.