Mevcut Apache Spark kodunuzu Azure Databricks için uyarlama

Bu makalede, mevcut Apache Spark iş yüklerini Azure Databricks üzerinde çalışacak şekilde uyarlamak için gereken değişiklikler özetlenmiştir. İster şirket içi kümeden, özel bulut tabanlı altyapıdan ister başka bir kurumsal Apache Spark teklifinden Azure Databricks geçiş yapın, çoğu iş yükünün üretime girilmesi için yalnızca birkaç değişiklik yapılması gerekir. Azure Databricks özel iyileştirmeler sunarak, altyapıyı yapılandırıp dağıtarak ve Databricks Runtime'da bağımlılıkları koruyarak Apache Spark'ın performansını genişletir, basitleştirir ve geliştirir.

Önemli

Apache Spark sürümlerini yükselttiğiniz zaman söz diziminde uyumsuzluk yaratan değişiklikler olabilir. Bkz Databricks Runtime sürüm notları ve sürüm uyumluluğu ve Spark geçiş kılavuzu.

Değiştir parquet ile delta

Databricks, veri yazarken Parquet veya ORC yerine Delta Lake kullanılmasını önerir. Azure Databricks, Delta Lake tarafından desteklenen tablolarla etkileşim kurarken verimlilik için birçok özelliği iyileştirmiştir ve Parquet'i Delta Lake'e yükseltmek yalnızca birkaç adımdan oluşur. Bir Parquet veri gölünü Delta Lake'e geçirme konusuna bakın.

Delta LakeACID işlem garantileri sağladığından, Apache Spark işlemlerinde sahte işlem oluşturmaya yönelik geçici çözümleri kaldırmak için iş yüklerini basitleştirebilirsiniz. Örnekler şunları içerir:

  • Belirli bir işlemden gelen tüm dosyaların bir bölümün parçası olarak aynı anda bulunmasını sağlayan bir dizin yapısı veya bölümleme stratejisi oluşturma.
  • Meta veri deposunu yapılandırma veya yeni verilerin nasıl keşfedildiğine ilişkin işlemsellik eklemesi için meta veri deposuna güvenme.
  • Bir tabloya yazılan dosyaları meta veri deposuna kaydetmek için MSCK repair kullanma.
  • Bir tabloya el ile bölüm eklemek için alter table add partition kullanma.

Bkz. Azure Databricks'da tabloları bölümleme.

Not

İş yüklerini kullanılan veri biçimlerini yükseltmeden çalıştırabilirsiniz, ancak Azure Databricks üzerindeki en büyük performans kazançlarının çoğu doğrudan Delta Lake'e bağlıdır.

Apache Spark kodunu Databricks Runtime uyumlu kitaplıklarla yeniden derleme

Databricks Runtime'ın her sürümü Apache Spark uygulamalarında gerekli kitaplıkların birçoğuyla önceden yapılandırılmış olarak gelir. İşleminize gerektiği gibi ek kitaplıklar yükleyebilirsiniz, ancak mümkünse Databricks, Databricks Runtime'da paketlenmiş ve uyumluluk açısından test edilen kitaplık sürümlerinin kullanılmasını önerir. Her Databricks Runtime sürümü, yüklü tüm kitaplıkların listesini içerir. Bkz Databricks Runtime sürüm notları sürümleri ve uyumluluğu.

SparkSession oluşturma komutlarını kaldırma

Birçok eski Apache Spark iş yükü, her iş için açıkça yeni bir SparkSession bildirir. Azure Databricks her işlem kümesi için otomatik olarak bir SparkContext oluşturur ve kümede yürütülen her not defteri veya iş için yalıtılmış bir SparkSession oluşturur. Azure Databricks'e dağıtabilmek için bu komutları SparkSession.builder().getOrCreate() kullanacak şekilde yükselterek, kodu yerel olarak derleme ve test etme yeteneğini sürdürebilirsiniz.

Terminal betiği komutlarını kaldırma

Apache Spark, programların sys.exit() veya sc.stop() gibi komutlar kullanarak tamamlandıklarını açıkça bildirmelerini gerektirir. Azure Databricks, tamamlanan işleri otomatik olarak sonlandırır ve temizler, bu nedenle bu komutlar gerekli değildir ve kaldırılmalıdır.

Azure Databricks ayrıca, awaitTermination() ve benzer komutları Yapılandırılmış Akış uygulamalarından kaldırabilmeniz için, çalışan sonlandırmada Yapılandırılmış Akış iş yüklerini otomatik olarak sonlandırır ve temizler. Bkz . Ne zaman kullanılır awaitTermination()?

Azure Databricks'e kümenizi yapılandırmak için güvenin

Azure Databricks, dayanıklılık ve kaynak kullanımını en üst düzeye çıkarmak için işlem kümenizdeki sürücü ve yürütücüler için tüm ayarları otomatik olarak yapılandırılır. Yürütücüler veya JVM için özel yapılandırmalar sağlamak performansın düşmesine neden olabilir. Databricks, mantığın tutarlı kalması için yalnızca tür işlemeyi veya işlevleri denetlemek için gereken Spark yapılandırmalarının ayarlanmasını önerir.

İş yüklerinizi çalıştırma

artık Azure Databricks yürütmeyi engelleyebilecek desenleri, komutları ve ayarları kaldırdığınıza göre, iş yüklerinizi bir test ortamında çalıştırabilir ve performansı ve sonuçları eski altyapınızla karşılaştırabilirsiniz. Ekibinizin Apache Spark iş yüklerinin sorunlarını gidermek ve performansı geliştirmek için geliştirmiş olabileceği becerilerin birçoğu Azure Databricks'de de kullanılabilir ancak daha sık apache Spark, Delta Lake veya özel Azure Databricks ürünlerinde yeni özellikleri kullanmak için yükseltme adımlarından daha fazla kazanç elde edebilirsiniz.