AnalyticDB for MySQL spark-submit komut satırı aracı, bir istemciden Spark JAR uygulamalarını göndermenizi ve yönetmenizi sağlar. Bu konuda aracın nasıl kurulacağı, yapılandırılacağı, bir Spark JAR uygulamasının nasıl gönderileceği ve çalışan işlerin nasıl yönetileceği açıklanmaktadır.
Sınırlamalar
spark-submit aracı yalnızca Spark JAR uygulamalarını destekler. Spark SQL uygulamaları gönderilemez.
Gönderme işlemi yinelenebilir (idempotent) olmadığından başarısız olan gönderme komutları yeniden denenmez. Ağ zaman aşımı nedeniyle başarısız görünen bir komut aslında başarılı olmuş olabilir. Göndermenin başarılı olup olmadığını doğrulamak için
--listseçeneğini kullanın veya AnalyticDB for MySQL konsolunu kontrol edin.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Bir AnalyticDB for MySQL Data Lakehouse Edition kümesi
Bir iş kaynak grubu. Ayrıntılar için bkz. Kaynak grubu oluşturma ve yönetme
Küme ile aynı bölgede bulunan bir Object Storage Service (OSS) paketi
İstemci makinede kurulu Java Development Kit (JDK) 1,8 veya üzeri bir sürüm
spark-submit yükleyin
-
Kurulum paketini indirin.
wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz -
Paketi açın.
tar zxvf adb-spark-toolkit-submit-0.0.1.tar.gz
spark-submit yapılandırın
Paketi çıkardıktan sonra adb-spark-toolkit-submit/conf/spark-defaults.conf dosyasını açın. spark-submit betiği bu dosyayı otomatik olarak okur ve ayarlar tüm Spark uygulamalarına uygulanır.
vim adb-spark-toolkit-submit/conf/spark-defaults.conf
Aşağıdaki tabloda yapılandırma parametreleri açıklanmaktadır.
| Parametre | Zorunlu | Açıklama |
|---|---|---|
keyId |
Evet | AnalyticDB for MySQL erişim iznine sahip bir Alibaba Cloud hesabının veya Resource Access Management (RAM) kullanıcısının AccessKey kimliği. Ayrıntılar için bkz. Hesaplar ve izinler. |
secretId |
Evet | Alibaba Cloud hesabının veya RAM kullanıcısının AccessKey gizli anahtarı. Ayrıntılar için bkz. Hesaplar ve izinler. |
regionId |
Evet | AnalyticDB for MySQL kümesinin bölge kimliği. |
clusterId |
Evet | AnalyticDB for MySQL kümesinin kimliği. |
rgName |
Evet | Spark uygulamalarını çalıştırmak için kullanılan iş kaynak grubunun adı. |
ossKeyId |
Hayır | OSS erişimi için AccessKey kimliği. Yerel depolamada bulunan JAR dosyalarının OSS'ye yüklenmesi gerektiğinde zorunludur. RAM kullanıcısının AliyunOSSFullAccess iznine sahip olması gerekir. |
ossSecretId |
Hayır | OSS erişimi için AccessKey gizli anahtarı. ossKeyId ile birlikte gereklidir. |
ossUploadPath |
Hayır | Yerel JAR dosyalarını yüklemek için OSS yolu. ossKeyId ile birlikte gereklidir. |
conf |
Hayır | anahtar:değer biçimindeki ek Spark yapılandırma parametreleri. Birden fazla parametreyi virgülle ayırın. Kullanılabilir parametreler için bkz. Spark uygulama yapılandırma parametreleri. |
Spark uygulaması gönderin
Spark uygulamanız için gereken JAR dosyalarını OSS'ye yükleyin. Ayrıntılar için bkz. Basit yükleme.
-
spark-submit dizinine gidin.
cd adb-spark-toolkit-submit -
Spark uygulamasını gönderin. Yer tutucu değerleri gerçek OSS yollarınız ve kaynak adlarınızla değiştirin.
./bin/spark-submit \ --class com.aliyun.spark.oss.SparkReadOss \ --verbose \ --name Job1 \ --jars oss://<bucket-name>/jars/test.jar,oss://<bucket-name>/jars/search.jar \ --conf spark.driver.resourceSpec=medium \ --conf spark.executor.instances=1 \ --conf spark.executor.resourceSpec=medium \ oss://<bucket-name>/jars/test1.jar args0 args1Yer tutucuları aşağıdaki gibi değiştirin:
Yer Tutucu Açıklama <bucket-name>JAR dosyalarınızı içeren OSS paketinin adı args0 args1JAR dosyaları için bağımsız değişkenler (boşlukla ayrılmış)
Uygulamayı gönderdikten sonra aşağıdaki dönüş kodlarından biri döndürülür:
| Dönüş Kodu | Anlamı |
|---|---|
0 |
Uygulama başarıyla çalıştı |
255 |
Uygulama başarısız oldu |
143 |
Uygulama sonlandırıldı |
Aşağıdaki tabloda yukarıdaki komutta kullanılan spark-submit parametreleri açıklanmaktadır.
| Parametre | Açıklama |
|---|---|
--class |
Java veya Scala uygulamasının ana sınıfı. Python uygulamaları için gerekli değildir. |
--verbose |
Gönderim sırasında oluşturulan günlükleri yazdırır. |
--name |
Spark uygulamasının adı. |
--jars |
Uygulamanın bağımlı olduğu ek JAR dosyalarının virgülle ayrılmış mutlak OSS yolları. Yerel yollar belirtirseniz araç bunları ossUploadPath içinde yapılandırılan OSS yoluna yükler. Yerel bir JAR dosyası yüklenirken sistem dosyanın MD5 toplamını kullanarak doğrulama yapar; OSS'de aynı ada ve MD5 değerine sahip bir dosya zaten varsa yükleme iptal edilir. OSS'deki bir JAR dosyasını manuel olarak güncellediyseniz güncellenmiş dosyanın yüklenmesi için ilgili MD5 toplamı dosyasını silin. RAM kullanıcısının AliyunOSSFullAccess iznine sahip olması gerekir. |
--conf |
Spark yapılandırma parametreleri. Birden fazla parametreyi ayrı bayraklar olarak belirtin: --conf key1=value1 --conf key2=value2. AnalyticDB for MySQL'ye özel parametreler için bkz. Açık kaynaklı spark-submit'ten farklar. |
| Ana dosya yolu | Ana JAR dosyasının (Java/Scala için) veya giriş noktası betiğinin (Python için) mutlak OSS yolu. Tüm ana dosyalar OSS'de depolanmalıdır. |
args |
JAR dosyaları için bağımsız değişkenler (boşlukla ayrılmış). |
Spark uygulamalarını yönetin
Bir uygulama gönderildikten sonra tipik iş akışı şu şekildedir:
Uygulama kimliğini almak için
--listkomutunu çalıştırın.İlerlemeyi izlemek için uygulama kimliğini
--status,--get-logveya--detailseçenekleriyle birlikte kullanın.Gerekirse uygulamayı durdurmak için
--killkomutunu çalıştırın.
Uygulamaları listeleyin
Burada döndürülen uygulama kimliğini diğer tüm yönetim komutlarıyla kullanın.
./bin/spark-submit --list \
--clusterId <cluster-ID> \
--rgName <resource-group-name> \
--pagenumber 1 \
--pagesize 3
<cluster-ID> yerine AnalyticDB for MySQL kümenizin kimliğini ve <resource-group-name> yerine iş kaynak grubunuzun adını yazın.
Uygulama durumunu kontrol edin
./bin/spark-submit --status <application-ID>
Gönderim ayrıntılarını ve Spark UI URL'sini görüntüleyin
./bin/spark-submit --detail <application-ID>
Çıktı, ilgili uygulamanın Spark UI URL'sini içeren bir Spark WEB UI alanı içerir.
Uygulama günlüklerini görüntüleyin
./bin/spark-submit --get-log <application-ID>
Bir uygulamayı sonlandırın
./bin/spark-submit --kill <application-ID>
Açık kaynaklı spark-submit'ten farklar
AnalyticDB for MySQL spark-submit'e özel parametreler
Aşağıdaki parametreler yalnızca AnalyticDB for MySQL spark-submit aracında kullanılabilir.
| Parametre | Varsayılan | Açıklama |
|---|---|---|
--api-retry-times |
3 |
Başarısız komutlar için maksimum yeniden deneme sayısı. Gönderme komutları yeniden denenmez — ayrıntılar için bkz. Sınırlamalar. |
--time-out-seconds |
10 |
Başarısız bir komutu yeniden denemeden önceki saniye cinsinden zaman aşımı süresi. |
--enable-inner-endpoint |
— | Sanal özel bulut (VPC) içinde dahili ağ erişimini etkinleştirir. Uygulamaları bir Elastic Compute Service (ECS) örneğinden gönderirken bunu kullanın. |
--list |
— | Gönderilen uygulamaları listeler. Sonuçları sayfalamak için --pagenumber ve --pagesize ile birlikte kullanın. |
--pagenumber |
1 |
Liste sonuçları için sayfa numarası. |
--pagesize |
10 |
Sayfa başına döndürülen uygulama sayısı. |
--kill |
— | Belirtilen uygulamayı sonlandırır. |
--get-log |
— | Belirtilen uygulama için günlükleri alır. |
--status |
— | Belirtilen uygulamanın durumunu gösterir. |
AnalyticDB for MySQL spark-submit tarafından desteklenmeyen parametreler
Bazı açık kaynaklı spark-submit parametreleri desteklenmez. Tam liste için bkz. Spark uygulama yapılandırma parametreleri konusu.