Senaryo: Azure HDInsight'ta Apache Spark thrift sunucusu için RpcTimeoutException

Bu makalede, Azure HDInsight kümelerinde Apache Spark bileşenlerini kullanırken karşılaşılan sorunlara yönelik sorun giderme adımları ve olası çözümleri açıklanmaktadır.

Sorun

Spark uygulaması aşağıdaki örnekte olduğu gibi bir org.apache.spark.rpc.RpcTimeoutException özel durum ve iletiyle Futures timed outbaşarısız oluyor: .

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 ve overhead limit exceeded hataları aşağıdaki örnekte gösterildiği gibi içinde de görünebilir 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

Nedeni

Bu hatalar, veri işleme sırasında bellek kaynaklarının olmamasından kaynaklanıyor. Java çöp toplama işlemi başlatılırsa Spark uygulamasının yanıt vermeyi durdurmasına neden olabilir. Sorgular zaman aşımına uğramaya ve işlemeyi durdurmaya başlar. Hata, Futures timed out ciddi stres altındaki bir kümeyi gösterir.

Çözüm

Daha fazla çalışan düğümü ekleyerek veya mevcut küme düğümlerinin bellek kapasitesini artırarak küme boyutunu artırın. Aynı anda işlenen veri miktarını azaltmak için veri işlem hattını da ayarlayabilirsiniz.

tüm spark.network.timeout ağ bağlantılarının zaman aşımını denetler. Ağ zaman aşımının artırılması bazı kritik işlemlerin bitmesi için daha fazla zaman tanıyabilir, ancak bu işlem sorunu tamamen çözmez.

Sonraki adımlar

Sorununuzu görmediyseniz veya sorununuzu çözemiyorsanız daha fazla destek için aşağıdaki kanallardan birini ziyaret edin: