Aracılığıyla paylaş


Azure Databricks için mevcut Apache Spark kodunuzu uyarlama

Bu makalede, mevcut Apache Spark iş yüklerini Azure Databricks'te ç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'e 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 hataya neden olan değişiklikler olabilir. Bkz . Databricks Runtime sürüm notları sürümleri ve uyumluluğu ile Spark geçiş kılavuzu.

Olarak değiştir parquetdelta

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. Bkz . Parquet veri göllerini Delta Lake'e geçirme.

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.
  • Yeni verilerin nasıl bulunduğuna ilişkin işlemsellik eklemek için meta veri deposu yapılandırma veya 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'te tabloları ne zaman bölümlendirmeli.

Not

İş yüklerini kullanılan veri biçimlerini yükseltmeden çalıştırabilirsiniz, ancak Azure Databricks'te en büyük performans kazanımları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. Kodu yerel olarak derleyip test etme ve ardından bu komutları kullanmak üzere yükselterek Azure Databricks'e dağıtma özelliğini koruyabilirsiniz SparkSession.builder().getOrCreate().

Terminal betiği komutlarını kaldırma

Apache Spark, programların veya sys.exit()gibi sc.stop() komutları kullanarak tamamlandıklarını açıkça bildirmesini 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, yapılandırılmış akış iş yüklerini çalıştırma sonlandırmada otomatik olarak sonlandırır ve temizler, böylece yapılandırılmış Akış uygulamalarından awaitTermination() ve benzer komutları kaldırabilirsiniz.

Kümenizi yapılandırmak için Azure Databricks'e güvenme

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ıyor. 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

Azure Databricks yürütmesini 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üklerinde sorun gidermek ve performansı geliştirmek için geliştirmiş olabileceği becerilerin çoğu Azure Databricks'te de kullanılabilir ancak genellikle 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.