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.