Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure HDInsight'ta en iyi performans için Apache Spark kümenizin yapılandırmasını iyileştirme adımları anlatılmaktadır.
Genel bakış
Spark kümesi iş yükünüze bağlı olarak, varsayılan olmayan bir Spark yapılandırmasının daha iyileştirilmiş Spark işi yürütmeye neden olacağını belirleyebilirsiniz. Varsayılan olmayan küme yapılandırmalarını doğrulamak için örnek iş yükleriyle karşılaştırma testi yapın.
Ayarlayabildiğiniz bazı yaygın parametreler şunlardır:
| Parametre | Açıklama |
|---|---|
| --num-executors | Uygun sayıda yürütücü ayarlar. |
| --çalıştırıcı çekirdekleri | Her yürütücü için çekirdek sayısını ayarlar. Diğer işlemler kullanılabilir belleğin bir kısmını tükettiğinden genellikle orta büyüklükte yürütücüleriniz olmalıdır. |
| --executor-memory | Yarn üzerindeki yığın boyutunu denetleyen her yürütücü için bellek boyutunu ayarlar. Yürütme yükü için biraz bellek bırakın. |
Doğru yürütücü boyutunu seçin
Yürütücü yapılandırmanıza karar verirken Java çöp toplama (GC) ek yükünü göz önünde bulundurun.
Yürütücü boyutunu küçültmek için faktörler:
- GC ek yükünü < 10%tutmak için yığın boyutunu 32 GB'ın altına düşürün.
- GC ek yükünü < 10%tutmak için çekirdek sayısını azaltın.
Yürütücü boyutunu artırmaya yönelik faktörler:
- Yürütücüler arasındaki iletişim yükünü azaltın.
- Daha büyük kümelerde yürütücüler (N2) arasındaki açık bağlantı sayısını azaltın (>100 yürütücü).
- Yoğun bellek kullanan görevlere uyum sağlamak için yığın boyutunu artırın.
- İsteğe bağlı: Yürütücü başına bellek yükünü azaltın.
- İsteğe bağlı: CPU'ya fazla abone olarak kullanımı ve eşzamanlılığı artırın.
Yürütücü boyutunu seçerken genel bir kural olarak:
- Yürütücü başına 30 GB ile başlayın ve kullanılabilir makine çekirdeklerini dağıtabilirsiniz.
- Daha büyük kümeler için yürütücü çekirdeği sayısını artırın (> 100 yürütücü).
- Boyutu hem deneme çalıştırmalarına hem de GC ek yükü gibi önceki faktörlere göre değiştirin.
Eşzamanlı sorgular çalıştırırken şunları göz önünde bulundurun:
- Yürütücü ve tüm makine çekirdekleri başına 30 GB ile başlayın.
- CPU fazlası kullanarak birden fazla paralel Spark uygulaması oluşturun (yaklaşık %30 gecikme süresi iyileştirmesi).
- Sorguları paralel uygulamalar arasında dağıtma.
- Boyutu, deneme çalıştırmaları ve GC ek yükü gibi önceki faktörlere bağlı olarak ayarlayın.
Yürütücüleri yapılandırmak için Ambari kullanma hakkında daha fazla bilgi için bkz. Apache Spark ayarları - Spark yürütücüleri.
Zaman çizelgesi görünümüne bakarak aykırı değerler veya diğer performans sorunları için sorgu performansını izleyin. Ayrıca SQL grafı, iş istatistikleri vb. YARN ve Spark Geçmişi sunucusunu kullanarak Spark işlerinde hata ayıklama hakkında bilgi için bkz. Azure HDInsight üzerinde çalışan Apache Spark işlerinde hata ayıklama. YARN Zaman Çizelgesi Sunucusu'nu kullanma hakkında ipuçları için bkz. Apache Hadoop YARN uygulama günlüklerine erişme.
Bazı yürütücülerde veya düğümlerde görevler daha yavaş
Bazen yürütücülerden biri veya birkaçı diğerlerinden daha yavaştır ve görevlerin yürütülmesi çok daha uzun sürer. Bu yavaşlık genellikle büyük kümelerde (> 30 düğüm) gerçekleşir. Bu durumda, zamanlayıcının yavaş görevleri telafi edebilmesi için çalışmayı daha fazla sayıda görev olarak bölün. Örneğin, uygulamadaki yürütücü çekirdeği sayısının en az iki katı kadar görevi vardır. Ayrıca ile conf: spark.speculation = truegörevlerin tahmini yürütülmesini etkinleştirebilirsiniz.