Azure HDInsight GÇ Önbelleği kullanarak Apache Spark iş yüklerinin performansını geliştirme

Not

  • Spark 2.3'e kadar GÇ Önbelleği desteklenir ve Spark 2.4 (HDInsight 4.0) ve Spark 3.1.2 (HDInsight 5.0) içinde desteklenmez

GÇ Önbelleği, Azure HDInsight için Apache Spark işlerinin performansını geliştiren bir veri önbelleğe alma hizmetidir. GÇ Önbelleği, Apache Spark kümelerinde çalıştırılabilen Apache TEZ ve Apache Hive iş yükleriyle de çalışır. GÇ Önbelleği RubiX adlı bir açık kaynak önbelleğe alma bileşeni kullanır. RubiX, bulut depolama sistemlerinden verilere erişen büyük veri analizi altyapılarıyla kullanılmak üzere yerel bir disk önbelleğidir. RubiX, önbelleğe alma amacıyla işletim belleği ayırmak yerine Katı Hal Sürücüleri (SSD) kullandığından önbelleğe alma sistemleri arasında benzersizdir. GÇ Önbelleği hizmeti, kümenin her çalışan düğümünde RubiX Meta Veri Sunucularını başlatır ve yönetir. Ayrıca, RubiX önbelleğinin saydam kullanımı için kümenin tüm hizmetlerini yapılandırır.

Çoğu SSD saniyede 1 GByte'tan fazla bant genişliği sağlar. İşletim sistemi bellek içi dosya önbelleğiyle tamamlanan bu bant genişliği, Apache Spark gibi büyük veri işlem altyapılarını yüklemek için yeterli bant genişliği sağlar. Apache Spark'ın karıştırmalar gibi yoğun belleğe bağımlı görevleri işlemesi için işletim belleği kullanılabilir durumda kalır. İşletim belleğinin özel kullanımına sahip olmak Apache Spark'ın en iyi kaynak kullanımına ulaşmasını sağlar.

Not

GÇ Önbelleği şu anda rubix'i önbelleğe alma bileşeni olarak kullanır, ancak bu durum hizmetin gelecekteki sürümlerinde değişebilir. Lütfen GÇ Önbelleği arabirimlerini kullanın ve doğrudan RubiX uygulamasına bağımlılık almayın. GÇ Önbelleği şu anda yalnızca Azure BLOB Depolama ile desteklenir.

Azure HDInsight GÇ Önbelleğinin Avantajları

GÇ Önbelleği'nin kullanılması, Azure Blob Depolama verileri okuyan işler için performans artışı sağlar.

GÇ Önbelleği kullanırken performans artışlarını görmek için Spark işlerinizde herhangi bir değişiklik yapmanız gerekmez. GÇ Önbelleği devre dışı bırakıldığında, bu Spark kodu verileri Azure Blob Depolama uzaktan okur: spark.read.load('wasbs:///myfolder/data.parquet').count(). GÇ Önbelleği etkinleştirildiğinde, aynı kod satırı GÇ Önbelleği aracılığıyla önbelleğe alınmış bir okuma işlemine neden olur. Aşağıdaki okumalarda veriler SSD'den yerel olarak okunur. HDInsight kümesindeki çalışan düğümleri yerel olarak bağlı, ayrılmış SSD sürücülerle donatılmıştır. HDInsight GÇ Önbelleği, önbelleğe alma için bu yerel SSD'leri kullanır ve bu da en düşük gecikme düzeyini sağlar ve bant genişliğini en üst düzeye çıkarır.

Başlarken

Azure HDInsight GÇ Önbelleği önizlemede varsayılan olarak devre dışı bırakılır. GÇ Önbelleği, Apache Spark 2.3 çalıştıran Azure HDInsight 3.6+ Spark kümelerinde kullanılabilir. HDInsight 4.0'da GÇ Önbelleği'ni etkinleştirmek için aşağıdaki adımları uygulayın:

  1. Bir web tarayıcısından adresine gidin https://CLUSTERNAME.azurehdinsight.net; burada CLUSTERNAME kümenizin adıdır.

  2. Soldaki GÇ Önbelleği hizmetini seçin.

  3. Eylemler (HDI 3.6'da Hizmet Eylemleri) seçeneğini belirleyin ve Etkinleştir'i seçin.

    Enabling the IO Cache service in Ambari.

  4. Kümede etkilenen tüm hizmetlerin yeniden başlatılmasını onaylayın.

Not

İlerleme çubuğu etkin olarak gösterilse de, etkilenen diğer hizmetleri yeniden başlatana kadar GÇ Önbelleği aslında etkinleştirilmez.

Sorun giderme

GÇ Önbelleğini etkinleştirdikten sonra Spark işlerini çalıştırırken disk alanı hataları alabilirsiniz. Spark karıştırma işlemleri sırasında verileri depolamak için yerel disk depolamayı da kullandığından bu hatalar oluşur. GÇ Önbelleği etkinleştirildikten ve Spark depolama alanı azaldıktan sonra Spark'ın SSD alanı tükenebilir. GÇ Önbelleği tarafından kullanılan alan miktarı varsayılan olarak toplam SSD alanının yarısıdır. GÇ Önbelleği için disk alanı kullanımı Ambari'de yapılandırılabilir. Disk alanı hataları alırsanız GÇ Önbelleği için kullanılan SSD alanı miktarını azaltın ve hizmeti yeniden başlatın. GÇ Önbelleği için alan kümesini değiştirmek için aşağıdaki adımları uygulayın:

  1. Apache Ambari'de soldaki HDFS hizmetini seçin.

  2. Yapılandırmalar ve Gelişmiş sekmelerini seçin.

    Edit HDFS Advanced Configuration.

  3. Aşağı kaydırın ve Özel çekirdek site alanını genişletin.

  4. hadoop.cache.data.fullness.percentage özelliğini bulun.

  5. Kutudaki değeri değiştirin.

    Edit IO Cache Fullness Percentage.

  6. Sağ üst köşeden Kaydet'i seçin.

  7. Tüm Etkilenenleri Yeniden Başlat'ı>seçin.

    Apache Ambari restarts all affected.

  8. Tümünü Yeniden Başlat'ı seçin.

Bu işe yaramazsa GÇ Önbelleğini devre dışı bırakın.

Sonraki Adımlar

Bu blog gönderisindeki performans karşılaştırmaları da dahil olmak üzere GÇ Önbelleği hakkında daha fazla bilgi edinin: Apache Spark işleri HDInsight GÇ Önbelleği ile 9 kata kadar hız kazanır