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 out
baş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:
Azure Topluluk Desteği aracılığıyla Azure uzmanlarından yanıt alın.
müşteri deneyimini geliştirmek için resmi Microsoft Azure hesabı olan @AzureSupport ile bağlantı kurun. Azure topluluğunun doğru kaynaklara bağlanması: yanıtlar, destek ve uzmanlar.
Daha fazla yardıma ihtiyacınız varsa Azure portal bir destek isteği gönderebilirsiniz. Menü çubuğundan Destek'i seçin veya Yardım + destek hub'ını açın. Daha ayrıntılı bilgi için bkz. Azure desteği isteği oluşturma. Abonelik Yönetimi ve faturalama desteğine erişim, Microsoft Azure aboneliğinize dahildir ve Teknik Destek, Azure Destek Planlarından biri aracılığıyla sağlanır.