Delen via


Scenario: RpcTimeoutException voor Apache Spark thrift-server in Azure HDInsight

In dit artikel worden stappen voor probleemoplossing en mogelijke oplossingen beschreven voor problemen bij het gebruik van Apache Spark-onderdelen in Azure HDInsight-clusters.

Probleem

Spark-toepassing mislukt met een org.apache.spark.rpc.RpcTimeoutException uitzondering en een bericht: Futures timed out, zoals in het volgende voorbeeld:

org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [120 seconds]. This timeout is controlled by spark.rpc.askTimeout
 at org.apache.spark.rpc.RpcTimeout.org$apache$spark$rpc$RpcTimeout$$createRpcTimeoutException(RpcTimeout.scala:48)

OutOfMemoryError en overhead limit exceeded fouten kunnen ook worden weergegeven in het sparkthriftdriver.log volgende voorbeeld:

WARN  [rpc-server-3-4] server.TransportChannelHandler: Exception in connection from /10.0.0.17:53218
java.lang.OutOfMemoryError: GC overhead limit exceeded

Oorzaak

Deze fouten worden veroorzaakt door een gebrek aan geheugenbronnen tijdens gegevensverwerking. Als het Java Garbagecollection-proces wordt gestart, kan dit ertoe leiden dat de Spark-toepassing niet meer reageert. Er treedt een time-out op voor query's en stopt de verwerking. De Futures timed out fout geeft aan dat een cluster onder ernstige stress staat.

Oplossing

Vergroot de clustergrootte door meer werkknooppunten toe te voegen of de geheugencapaciteit van de bestaande clusterknooppunten te vergroten. U kunt de gegevenspijplijn ook aanpassen om de hoeveelheid gegevens die in één keer wordt verwerkt, te verminderen.

De spark.network.timeout time-out voor alle netwerkverbindingen wordt bepaald. Het verhogen van de netwerktime-out kan meer tijd inschakelen voor bepaalde kritieke bewerkingen, maar dit lost het probleem niet volledig op.

Volgende stappen

Als u uw probleem niet hebt gezien of uw probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning:

  • Krijg antwoorden van Azure-experts via de ondersteuning van De Azure-community.

  • Maak verbinding met @AzureSupport : het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. De Azure-community verbinden met de juiste resources: antwoorden, ondersteuning en experts.

  • Als u meer hulp nodig hebt, kunt u een ondersteuningsaanvraag indienen via Azure Portal. Selecteer Ondersteuning in de menubalk of open de Help + ondersteuningshub . Raadpleeg hoe u een ondersteuning voor Azure aanvraag maakt voor meer informatie. Toegang tot abonnementsbeheer en factuurbeheer is in uw Microsoft Azure-abonnement inbegrepen, en technische ondersteuning wordt verstrekt via een van de Azure-ondersteuningsplannen.