Apache Spark için bellek kullanımı iyileştirmesi

Bu makalede, Azure HDInsight'ta en iyi performans için Apache Spark kümenizin bellek yönetimini iyileştirme adımları anlatılmaktadır.

Genel bakış

Spark, verileri belleğe yerleştirerek çalışır. Bu nedenle bellek kaynaklarını yönetmek, Spark işlerinin yürütülmesini iyileştirmenin önemli bir yönüdür. Kümenizin belleğini verimli bir şekilde kullanmak için uygulayabileceğiniz çeşitli teknikler vardır.

  • Daha küçük veri bölümlerini tercih edin ve bölümleme stratejinizde veri boyutu, türleri ve dağıtımı için hesap oluşturun.
  • Varsayılan Java serileştirmesi yerine daha yeni, daha verimli Kryo data serializationdüşünün.
  • Toplu olarak ayrıldığı spark-submit için YARN kullanmayı tercih edin.
  • Spark yapılandırma ayarlarını izleyin ve ayarlayın.

Başvurunuz için Spark bellek yapısı ve bazı anahtar yürütücü bellek parametreleri sonraki görüntüde gösterilir.

Spark bellekle ilgili dikkat edilmesi gerekenler

Apache Hadoop YARN kullanıyorsanız YARN, her Spark düğümündeki tüm kapsayıcılar tarafından kullanılan belleği denetler. Aşağıdaki diyagramda anahtar nesneler ve bunların ilişkileri gösterilmektedir.

YARN Spark Memory Management.

'Bellek yetersiz' iletilerini ele almak için şunları deneyin:

  • DAG Yönetim Karıştırmalarını gözden geçirin. Harita tarafı azaltma, önceden bölümleme (veya demetleme) kaynak verilerini azaltarak azaltın, tek karıştırmaları en üst düzeye çıkarın ve gönderilen veri miktarını azaltın.
  • Toplamalar, pencereleme ve diğer işlevleri sağlayan ancak sınırsız bellek sınırına sahip olan sabit bellek sınırı GroupByKeyile tercih edinReduceByKey.
  • TreeReduceYürütücüler veya bölümler üzerinde daha fazla iş yapan öğesini tercih edinReduce; bu da sürücüde çalışır.
  • Alt düzey RDD nesneleri yerine DataFrames kullanın.
  • "İlk N", çeşitli toplamalar veya pencereleme işlemleri gibi eylemleri kapsülleyen ComplexType'lar oluşturun.

Ek sorun giderme adımları için bkz . Azure HDInsight'ta Apache Spark için OutOfMemoryError özel durumları.

Sonraki adımlar