Scénář: RpcTimeoutException pro server Apache Spark thrift ve službě Azure HDInsight
Tento článek popisuje kroky řešení potíží a možná řešení problémů při používání komponent Apache Sparku v clusterech Azure HDInsight.
Problém
Aplikace Spark selže s org.apache.spark.rpc.RpcTimeoutException
výjimkou a zprávou: Futures timed out
, jako v následujícím příkladu:
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
a overhead limit exceeded
chyby se mohou objevit také v následujícím příkladu sparkthriftdriver.log
:
WARN [rpc-server-3-4] server.TransportChannelHandler: Exception in connection from /10.0.0.17:53218
java.lang.OutOfMemoryError: GC overhead limit exceeded
Příčina
Tyto chyby jsou způsobeny nedostatkem paměťových prostředků během zpracování dat. Pokud se spustí proces uvolňování paměti Java, může to vést k tomu, že aplikace Spark přestane reagovat. Dotazy začnou vypršení časového limitu a zastaví zpracování. Tato Futures timed out
chyba značí cluster s těžkým stresem.
Rozlišení
Zvětšete velikost clusteru přidáním dalších pracovních uzlů nebo zvýšením kapacity paměti stávajících uzlů clusteru. Můžete také upravit datový kanál tak, aby se snížil objem zpracovávaných dat najednou.
Určuje spark.network.timeout
časový limit pro všechna síťová připojení. Zvýšení časového limitu sítě může umožnit dokončení některých kritických operací více času, ale tím se problém zcela nevyřeší.
Další kroky
Pokud jste problém neviděli nebo nemůžete problém vyřešit, navštivte jeden z následujících kanálů, kde najdete další podporu:
Získejte odpovědi od odborníků na Azure prostřednictvím podpory komunity Azure.
Spojte se s @AzureSupport – oficiálním účtem Microsoft Azure pro zlepšení uživatelského prostředí. Propojení komunity Azure se správnými prostředky: odpovědi, podpora a odborníci.
Pokud potřebujete další pomoc, můžete odeslat žádost o podporu z webu Azure Portal. V řádku nabídek vyberte možnost Podpora nebo otevřete centrum nápovědy a podpory . Podrobnější informace najdete v tématu Vytvoření žádosti o podpora Azure. Součástí předplatného Microsoft Azure je přístup ke správě předplatného a podpora fakturace. Technická podpora se poskytuje prostřednictvím některého z plánů podpory Azure.