Lindorm Distributed Processing System (LDPS), Kubernetes tarafından yönetilen esnek kaynak havuzlarında Spark işlerini çalıştırır. Bu sayfada LDPS Spark işleri için yapılandırılabilecek tüm parametreler listelenir ve her gönderim yöntemi için bu parametrelerin nasıl iletileceği açıklanır.
Spark parametreleri
Kısıtlı parametreler
Aşağıdaki parametreler sistem tarafından belirlenir ve özelleştirilemez.
| Parametre | Açıklama |
|---|---|
spark.master |
Küme yönetim sisteminin uç noktası. |
spark.submit.deployMode |
Spark sürücüsünün dağıtım modu. |
Kaynak parametreleri
LDPS, kullandıkça öde modeliyle faturalandırılan esnek kaynak havuzlarında çalışır. Varsayılan olarak bir işin isteyebileceği kaynaklar için üst sınır yoktur. Üst sınır belirlemek için bkz. LDPS yapılandırmalarını değiştirme.
Kaynak parametreleri LDPS'ye gönderilen tüm JDBC, JAR ve Python işlerine uygulanır. Bu parametreler teknik özellik parametreleri ve kapasite parametreleri olarak ikiye ayrılır.
Teknik özellik parametreleri
Temel teknik özellik parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.driver.memory |
Sürücünün yığın belleği. Birim: mebibayt. | 8192m |
spark.driver.memoryOverhead |
Sürücünün yığın dışı belleği. Birim: mebibayt. | 8192m |
spark.kubernetes.driver.disk.size |
Sürücünün yerel disk boyutu. Birim: GB. | 50 |
spark.executor.cores |
Executor başına CPU çekirdek sayısı. | 4 |
spark.executor.memory |
Executor başına yığın bellek. Birim: mebibayt. | 8192m |
spark.executor.memoryOverhead |
Executor başına yığın dışı bellek. Birim: mebibayt. | 8192m |
spark.kubernetes.executor.disk.size |
Executor başına yerel disk boyutu. Birim: GB. | 50 |
Gelişmiş teknik özellik parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.{driver/executor}.resourceTag |
Önceden tanımlanmış kaynak teknik özellikleri kümesi. Ayarlandığında LDPS ilgili CPU, bellek ve disk değerlerini otomatik olarak uygular. Geçerli değerler: xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge. |
Yok |
spark.kubernetes.{driver/executor}.ecsModelPreference |
Öncelik sırasına göre listelenen tercih edilen hesaplama düğümü modelleri. LDPS her modeli sırayla dener; tüm modeller kullanılamıyorsa kaynak teknik özellikleriyle eşleşen kullanılabilir bir model seçer. Virgülle ayrılmış en fazla dört model belirtin. Örnek: hfg6,g6. |
Yok |
spark.kubernetes.{driver/executor}.annotation.k8s.aliyun.com/eci-use-specs |
Elastic Container Instance (ECI) GPU teknik özellikleri. Desteklenen GPU örnek türleri için bkz. Pod oluşturmak için ECS örnek türlerini belirtme. | ecs.gn7i-c8g1.2xlarge |
spark.{driver/executor}.resource.gpu.vendor |
GPU satıcısı. eci-use-specs içinde ayarlanan GPU teknik özellikleriyle eşleşmelidir. |
nvidia.com |
spark.{driver/executor}.resource.gpu.amount |
GPU sayısı. 1 olarak ayarlayın. |
1 |
spark.{driver/executor}.resource.gpu.discoveryScript |
Sürücü veya executor başlatıldığında GPU kaynaklarını tanımlamak ve bağlamak için kullanılan GPU keşif betiğinin yolu. /opt/spark/examples/src/main/scripts/getGpusResources.sh olarak ayarlayın. |
/opt/spark/examples/src/main/scripts/getGpusResources.sh |
spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs |
Genişletilmiş yerel disk kapasitesine sahip executor örnek teknik özellikleri. Aşağıdaki desteklenen değerlere bakın. | Yok |
spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs parametresi aşağıdaki executor teknik özelliklerini destekler:
| Değer | CPU çekirdek sayısı | Bellek |
|---|---|---|
ecs.d1ne.2xlarge |
8 | 32 GB |
ecs.d1ne.4xlarge |
16 | 64 GB |
ecs.d1ne.6xlarge |
24 | 96 GB |
ecs.d1ne.8xlarge |
32 | 128 GB |
ecs.d1ne.14xlarge |
56 | 224 GB |
spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs kullanırken aşağıdaki iki parametreyi de ayarlayın:
spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.mount.path=/varspark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.options.medium=LocalRaid0Belirtilen executor örnek türü kullanılamıyorsa Lindorm teknik desteğiyle iletişime geçin (DingTalk ID: s0s3eg3).
resourceTag teknik özellik eşlemesi
| resourceTag değeri | **spark.{driver/executor}.cores** |
**spark.{driver/executor}.memory** |
**spark.{driver/executor}.memoryOverhead** |
**spark.kubernetes.{driver/executor}.disk.size** |
|---|---|---|---|---|
xlarge |
4 | 8192m | 8192m | 50 GB |
2xlarge |
8 | 16384m | 16384m | 100 GB |
4xlarge |
16 | 32768m | 32768m | 200 GB |
8xlarge |
32 | 65536m | 65536m | 400 GB |
16xlarge |
64 | 131072m | 131072m | 400 GB |
Kapasite parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.executor.instances |
İş için ayrılan executor sayısı. | 2 |
spark.dynamicAllocation.enabled |
Dinamik kaynak tahsisini etkinleştirir. Etkinleştirildiğinde LDPS, gerçek zamanlı iş yüküne göre executor'ları otomatik olarak ister ve serbest bırakır. Geçerli değerler: true, false. |
true |
spark.dynamicAllocation.minExecutors |
Dinamik kaynak tahsisi etkinleştirildiğinde minimum executor sayısı. | 0 |
spark.dynamicAllocation.maxExecutors |
Dinamik kaynak tahsisi etkinleştirildiğinde maksimum executor sayısı. Bu değer, eşzamanlı görev sayısına eşittir. | Infinity |
spark.dynamicAllocation.executorIdleTimeout |
Boştaki bir executor'ın serbest bırakılmadan önce ne kadar süre tutulacağı. Birim: saniye. | 600s |
Çalıştırma parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.speculation |
Spekülatif çalıştırmayı etkinleştirir. Etkinleştirildiğinde sürücü, aynı aşamadaki diğer görevlere kıyasla önemli ölçüde daha yavaş çalışan görevleri (uzun kuyruklar) yeniden göndererek iş gecikmelerini önler. Geçerli değerler: true, false. |
true |
spark.task.maxFailures |
İş başarısız olmadan önce izin verilen maksimum görev hatası sayısı. | 4 |
spark.dfsLog.executor.enabled |
Executor günlüklerini LindormDFS'e kaydeder. Günlük akışlarından kaynaklanan DFS yükünü azaltmak için büyük ölçekli işlerde false olarak ayarlayın. Geçerli değerler: true, false. |
true |
spark.jars |
İş için gereken JAR paketinin yolu. OSS veya Hadoop Distributed File System (HDFS) yollarını kabul eder. JDBC kullanıyorsanız bunu yalnızca bir HDFS yoluna ayarlayın. Bir OSS yolu kullanıyorsanız aşağıdaki OSS parametrelerini de yapılandırın. | Yok |
spark.hadoop.fs.oss.endpoint |
OSS uç noktası. Bölgelere göre uç nokta değerleri için bkz. Bölgeler ve uç noktalar. | Yok |
spark.hadoop.fs.oss.accessKeyId |
Alibaba Cloud hesabınızın veya RAM kullanıcınızın AccessKey ID'si. Bkz. AccessKey çifti alma. | Yok |
spark.hadoop.fs.oss.accessKeySecret |
Alibaba Cloud hesabınızın veya RAM kullanıcınızın AccessKey gizli anahtarı. Bkz. AccessKey çifti alma. | Yok |
spark.hadoop.fs.oss.impl |
OSS için dosya sistemi uygulama sınıfı. org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem olarak ayarlayın. |
Yok |
spark.default.parallelism |
Veri kaynağı okumaları ve karıştırma aşamaları dahil olmak üzere SQL olmayan görevler için varsayılan paralellik. | Yok |
spark.sql.shuffle.partitions |
SQL görevleri için karıştırma bölümü sayısı. | 200 |
İzleme parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.monitor.cmd |
Düzenli aralıklarla çalıştırılacak izleme komutları. Birden çok komutu noktalı virgül (;) ile ayırın. Sonuçlar iş günlüklerine yazılır. Not
Bu parametre, Beeline veya JDBC aracılığıyla iş gönderilirken yapılandırılamaz. |
Yok |
spark.monitor.interval |
İzleme komutlarının çalıştırılması arasındaki aralık. Birim: saniye. | 60 |
spark.monitor.timeout |
Her izleme komutu için zaman aşımı. Bir komut bu sınırı aşarsa atlanır ve sonraki komut çalıştırılır. Birim: saniye. | 2 |
Örnek izleme komutları:
# Single command
"spark.monitor.cmd": "top -b -n 1"
# Multiple commands
"spark.monitor.cmd": "top -b -n 1; vmstat; free -m; iostat -d -x -c -k; df -h; sar -n DEV 1 1; netstat"
Kategorilere göre yaygın izleme komutları:
| Kategori | Komutlar |
|---|---|
| Sistem durumu | top -b -n 1, vmstat |
| Bellek | free -m |
| Disk G/Ç | iostat -d -x -c -k |
| Disk kullanımı | df -h |
| Ağ | sar -n DEV 1 1, netstat |
Günlük parametreleri
| Parametre | Açıklama | Varsayılan |
|---|---|---|
spark.log.level |
İş için günlük çıktısı düzeyi. | INFO |
spark.log.level için geçerli değerler, en ayrıntılıdan en az ayrıntılıya doğru:
| Düzey | Açıklama |
|---|---|
ALL |
En ayrıntılı hata ayıklama bilgileri dahil tüm günlük çıktıları. |
TRACE |
DEBUG düzeyinden daha ayrıntılıdır; ince taneli yürütme adımlarını kaydeder. |
DEBUG |
Ayrıntılı çalışma zamanı durumunu içeren hata ayıklama düzeyindeki günlükler. |
INFO |
Normal yürütme olayları için genel bilgilendirici günlükler. |
WARN |
Yürütmeyi durdurmayan olası sorunlara ilişkin uyarılar. |
ERROR |
Yürütme sırasında oluşan hatalar. |
FATAL |
Programın devam etmesini engelleyen kritik hatalar. |
OFF |
Tüm günlük çıktısını devre dışı bırakır. |
Açık kaynak Spark parametreleri
Açık kaynak Spark'tan devralınan parametreler için bkz. Spark yapılandırması.
Parametreleri gönderim yöntemine göre yapılandırma
LDPS'ye bir iş gönderirken kullandığınız yöntem, parametrelerin nasıl iletileceğini belirler.
Beeline
Beeline komut satırı aracının bulunduğu Spark paket dizininde conf/beeline.conf dosyasını düzenleyin.
# LDPS endpoint
# Format: jdbc:hive2://<host>:<port>/;?token=<token>
endpoint=jdbc:hive2://ld-bp13ez23egd123****-proxy-ldps-pub.lindorm.aliyuncs.com:10009/;?token=jfjwi2453-fe39-cmkfe-afc9-01eek2j5****
# Connection credentials (default: root/root)
user=root
password=root
# Set to false to use a dedicated Spark session for this connection
shareResource=false
# Spark parameters
spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=3
Tam Beeline kurulumu için bkz. Başlangıç.
JDBC
Spark parametrelerini, belirteçten sonra anahtar-değer çiftleri olarak JDBC bağlantı dizesine ekleyin.
jdbc:hive2://<host>:<port>/;?token=<token>;spark.executor.memory=8g;spark.sql.shuffle.partitions=2
Tam JDBC URL biçimi için bkz. Uygulama geliştirmede JDBC kullanma.
spark.jars JDBC aracılığıyla iş gönderilirken bir OSS yoluna ayarlanamaz. Bunun yerine bir HDFS yolu kullanın.
JAR işleri
Bir Java işi gönderirken parametreleri iş şablonunda yapılandırın:
Lindorm konsolu: İş içerik şablonunda yapılandırın. Bkz. Lindorm konsolunda işleri yönetme.
Data Management Service (DMS): İş düğümü sayfasının Job configuration bölümünde yapılandırın. Bkz. İşleri yönetmek için DMS kullanma.
Python işleri
Bir Python işi gönderirken parametreleri iş şablonunda yapılandırın:
Lindorm konsolu: İş içerik şablonunda yapılandırın. Bkz. Lindorm konsolunda işleri yönetme.
Data Management Service (DMS): İş düğümü sayfasının Job configuration bölümünde yapılandırın. Bkz. İşleri yönetmek için DMS kullanma.