Scenario: RpcTimeoutException för Apache Spark thrift-server i Azure HDInsight
Den här artikeln beskriver felsökningssteg och möjliga lösningar på problem när du använder Apache Spark-komponenter i Azure HDInsight-kluster.
Problem
Spark-programmet misslyckas med ett org.apache.spark.rpc.RpcTimeoutException
undantag och ett meddelande: Futures timed out
, som i följande exempel:
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
och overhead limit exceeded
fel kan också visas i som sparkthriftdriver.log
i följande exempel:
WARN [rpc-server-3-4] server.TransportChannelHandler: Exception in connection from /10.0.0.17:53218
java.lang.OutOfMemoryError: GC overhead limit exceeded
Orsak
Dessa fel orsakas av brist på minnesresurser under databearbetningen. Om Java-skräpinsamlingsprocessen startar kan det leda till att Spark-programmet slutar svara. Frågor börjar överskrida tidsgränsen och sluta bearbetas. Felet Futures timed out
anger ett kluster under allvarlig stress.
Åtgärd
Öka klusterstorleken genom att lägga till fler arbetsnoder eller öka minneskapaciteten för befintliga klusternoder. Du kan också justera datapipelinen för att minska mängden data som bearbetas samtidigt.
Styr spark.network.timeout
tidsgränsen för alla nätverksanslutningar. Om du ökar tidsgränsen för nätverket kan det ta längre tid för vissa kritiska åtgärder att slutföras, men det löser inte problemet helt.
Nästa steg
Om du inte ser problemet eller inte kan lösa problemet går du till någon av följande kanaler för mer support:
Få svar från Azure-experter via Azure Community Support.
Anslut med @AzureSupport – det officiella Microsoft Azure-kontot för att förbättra kundupplevelsen. Ansluta Azure-communityn till rätt resurser: svar, support och experter.
Om du behöver mer hjälp kan du skicka en supportbegäran från Azure Portal. Välj Support i menyraden eller öppna hubben Hjälp + support . Mer detaljerad information finns i Skapa en Azure Support begäran. Tillgång till support för prenumerationshantering och fakturering ingår i din Microsoft Azure-prenumeration och teknisk support ges via ett supportavtal för Azure.