DataWorks'te bir EMR Serverless Spark kümesi üzerinde Spark işlerini geliştirin ve periyodik olarak zamanlayın. Spark, karmaşık bellek içi hesaplamaları destekler; bu da onu büyük ölçekli ve düşük gecikme süreli veri analizleri için ideal kılar.
Ön koşullar
Hesaplama kaynağı sınırlamaları: Yalnızca ilişkili EMR Serverless Spark hesaplama kaynakları desteklenir. Kaynak grubu ile hesaplama kaynağı arasında ağ iletişimi kurulduğundan emin olun.
Kaynak grubu kısıtlamaları: Bu tür görevleri yalnızca Serverless kaynak grupları çalıştırabilir.
-
(İsteğe bağlı, RAM kullanıcıları için) Görev geliştirmesi yapan Resource Access Management (RAM) kullanıcısının çalışma alanına eklenmiş ve Development veya Workspace Administrator rolüne (bu rol geniş yetkiler içerir ve dikkatle atanmalıdır) sahip olması gerekir. Daha fazla bilgi için bkz. Çalışma alanı üyelerini ekleme.
Kök hesap kullanıyorsanız bu adımı atlayın.
Düğüm oluşturma
Talimatlar için bkz. Düğüm oluşturma.
Düğümü geliştirme
Bir Serverless Spark Toplu İş görevi geliştirmeden önce, Spark iş kodunu E-MapReduce (EMR) ortamında geliştirip bir JAR paketi halinde derlemeniz gerekir. Spark geliştirme kılavuzu için bkz. Spark öğreticileri.
Kullanım durumunuza en uygun yaklaşımı seçin:
Seçenek 1: EMR JAR dosyasını yükleme ve referans verme
Derlenen JAR paketini DataWorks'e bir EMR JAR kaynağı olarak yükleyin. Bu yaklaşım, 500 MB'tan küçük JAR paketleri için uygundur.
-
Bir EMR JAR kaynağı oluşturun.
Sol gezinme bölmesinde,
simgesine tıklayarak Resource Management sayfasına gidin.Resource Management sayfasında
simgesine tıklayın, seçeneğini belirleyin ve kaynağa spark-examples_2.11-2.4.0.jar adını verin.Click Upload öğesine tıklayın ve spark-examples_2.11-2.4.0.jar dosyasını yükleyin.
-
Bir Storage Path, Data Sources ve Resource Group seçin.
ÖnemliVeri kaynağı olarak ilişkili EMR Serverless Spark kümesini seçmeniz gerekir.
Save öğesine tıklayın.
-
EMR JAR kaynağını referans verin.
Oluşturduğunuz Serverless Spark Batch düğümünü açın ve kod düzenleyici sayfasında kalın.
Soldaki Kaynak Yönetimi bölmesinde kullanmak istediğiniz kaynağı bulun, sağ tıklayın ve Insert Resource Path seçeneğini belirleyin.
-
Aşağıdaki kod Serverless Spark Batch düğümünün kod düzenleyicisine otomatik olarak eklendiğinde kaynak başarıyla referans verilmiş olur:
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-examples_2.11-2.4.0.jarYukarıdaki kodda spark-examples_2.11-2.4.0.jar, yüklediğiniz EMR JAR kaynağının adıdır.
-
spark-submit komutunu ekleyerek düğüm kodunu değiştirin. Aşağıdaki örnek, değiştirilmiş kodu göstermektedir.
ÖnemliÖrneği tam olarak takip edin. Açıklama satırları eklemeyin; aksi takdirde düğüm başarısız olur.
EMR Serverless Spark için
spark-submitkomutundadeploy-modeparametresini ayarlamanız gerekmez. Yalnızcaclustermodu desteklenir.
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.0.jar 100
Komut
Açıklamaclass
JAR dosyasındaki uygulamanın ana sınıfı. Bu örnekte değerorg.apache.spark.examples.SparkPişeklindedir.NotParametreler hakkında daha fazla bilgi için bkz. spark-submit kullanarak iş gönderme.
Seçenek 2: OSS kaynağını referans verme
Object Storage Service (OSS) içinde depolanan bir kaynağı referans verin. DataWorks, belirtilen OSS kaynağını çalışma zamanında otomatik olarak yükler. Bu yaklaşımı, bir EMR işinin JAR bağımlılıkları gerektirdiği veya betiklere bağımlı olduğu durumlarda kullanın.
JAR kaynağını geliştirin: Bu konuda örnek olarak SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar kullanılmıştır.
-
JAR kaynağını yükleyin.
OSS konsoluna giriş yapın. Sol gezinme bölmesinde buckets öğesine tıklayın.
Dosya yönetim sayfasına gitmek için hedef paketin adına tıklayın.
JAR kaynağını depolamak için bir dizin oluşturmak üzere Create Directory öğesine tıklayın.
Dizine gidin ve
SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jardosyasını pakete yükleyin.
-
JAR kaynağını referans verin.
-
Oluşturduğunuz Serverless Spark Toplu İş düğümünün kod düzenleyicisinde, JAR kaynağını referans vermek için kodu yazın.
ÖnemliAşağıdaki kodda OSS paket adı
mybucketve dizinemrolarak belirtilmiştir. Bunları kendi değerlerinizle değiştirin.spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo oss://mybucket/emr/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jarParametreler:
Parametre
Açıklama
classÇalıştırılacak ana sınıfın tam nitelikli adı.
ossdosya yoluFormat
oss://{bucket}/{object}şeklindedir.-
bucket: Nesneleri depolayan OSS kapsayıcısıdır. Her paket benzersiz bir ada sahiptir. Hesabınız altındaki tüm paketleri görüntülemek için OSS konsoluna giriş yapabilirsiniz.
-
object: Bir pakette depolanan bir dosya veya yoldur.
NotParametreler hakkında daha fazla bilgi için bkz. spark-submit kullanarak iş gönderme.
-
-
Düğümü hata ayıklama
-
Run Configuration bölmesinde Compute resource ve resource group gibi ayarları yapılandırın.
Parametre
Açıklama
Compute resource
İlişkili bir EMR Serverless Spark hesaplama kaynağı seçin. Kullanılabilir kaynak yoksa açılır listeden Create Compute Resource seçeneğini belirleyin.
resource group
Çalışma alanıyla ilişkili bir kaynak grubu seçin.
Script parameters
Düğüm kodunda
${Parameter name}formatını kullanarak değişkenler tanımlayın. Ardından Parameter name ve Parameter Value değerlerini Script Parameters bölümünde tanımlayın. Çalışma zamanında DataWorks, bu değişkenleri belirtilen değerlerle değiştirir. Daha fazla bilgi için bkz. Zamanlama parametreleri.ServerlessSpark node parameters
Spark programı için çalışma zamanı parametreleri. Aşağıdaki türler desteklenir:
-
DataWorks için özel çalışma zamanı parametreleri. Daha fazla bilgi için bkz. Ek: DataWorks parametreleri.
-
Spark yerleşik özellikleri. Daha fazla bilgi için bkz. Açık kaynaklı Spark özellikleri ve Özel Spark Conf parametreleri.
Yapılandırma formatı şöyledir:
"spark.eventLog.enabled": false. DataWorks, bu ayarı Serverless Spark'a gönderilen koda otomatik olarak--conf key=valueformatında ekler.NotGenel Spark parametrelerini çalışma alanı düzeyinde ayarlayabilir ve bunların belirli bir modül içinde ayarlanan parametrelere göre öncelikli olup olmadığını belirtebilirsiniz. Ayrıntılar için bkz. Genel Spark parametrelerini yapılandırma.
-
-
Düğüm düzenleyicisinin üst kısmındaki araç çubuğunda Run öğesine tıklayın.
ÖnemliYayınlamadan önce, ServerlessSpark node parameters bölümündeki Run Configuration ayarlarını ServerlessSpark node parameters bölümündeki Scheduling Settings ayarlarıyla senkronize etmeniz gerekir.
Sonraki adımlar
Düğüm zamanlamasını yapılandırma: Bir düğümü periyodik olarak çalıştırmanız gerekiyorsa, sağ taraftaki Scheduling Settings panelinde Scheduling Policy ayarını yapılandırın.
Düğüm yayınlama: Bir görevi üretim ortamında çalıştırmak için
simgesine tıklayarak düğümü yayınlayın. Bir düğüm, yalnızca üretim ortamına yayınlandıktan sonra zamanlanmış olarak çalışır.Görev İşletme ve Bakım: Bir görev yayınlandıktan sonra, Operation Center üzerinden periyodik çalıştırmalarını izleyin. Daha fazla bilgi için bkz. Operation Center'a giriş.
İlgili belgeler
Ek: DataWorks parametreleri
|
Parametre |
Açıklama |
|
SERVERLESS_QUEUE_NAME |
İşin gönderildiği kaynak kuyruğu. Varsayılan olarak, işler Management Center içindeki Clusters altında küme için yapılandırılan Default Resource Queue öğesine gönderilir. Kaynakları yalıtmak ve yönetmek için kuyruklar ekleyebilirsiniz. Daha fazla bilgi için bkz. Kaynak kuyruklarını yönetme. Yapılandırma yöntemleri:
|