Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan operator Spark untuk Amazon di EMR EKS
Topik ini membantu Anda mulai menggunakan operator Spark di Amazon EKS dengan menerapkan aplikasi Spark dan aplikasi Schedule Spark.
Instal operator Spark
Gunakan langkah-langkah berikut untuk menginstal operator Kubernetes untuk Apache Spark.
-
Jika Anda belum melakukannya, selesaikan langkah-langkahnyaMenyiapkan operator Spark untuk Amazon di EMR EKS.
-
Otentikasi klien Helm Anda ke registri AmazonECR. Dalam perintah berikut, ganti
region-id
nilai dengan pilihan Anda Wilayah AWS, dan yang sesuaiECR-registry-account
nilai untuk Wilayah dari Akun ECR registri Amazon berdasarkan Wilayah halaman.aws ecr get-login-password \ --region
region-id
| helm registry login \ --username AWS \ --password-stdinECR-registry-account
.dkr.ecr.region-id
.amazonaws.com -
Instal operator Spark dengan perintah berikut.
Untuk
--version
parameter bagan Helm, gunakan label EMR rilis Amazon Anda denganemr-
awalan dan akhiran tanggal dihapus. Misalnya, denganemr-6.12.0-java17-latest
rilis, tentukan6.12.0-java17
. Contoh dalam perintah berikut menggunakanemr-7.2.0-latest
rilis, sehingga menentukan7.2.0
bagan Helm.--version
helm install spark-operator-demo \ oci://895885662937.dkr.ecr.
region-id
.amazonaws.com/spark-operator \ --set emrContainers.awsRegion=region-id
\ --version7.2.0
\ --namespace spark-operator \ --create-namespaceSecara default, perintah membuat akun layanan
emr-containers-sa-spark-operator
untuk operator Spark. Untuk menggunakan akun layanan yang berbeda, berikan argumennyaserviceAccounts.sparkoperator.name
. Sebagai contoh:--set serviceAccounts.sparkoperator.name
my-service-account-for-spark-operator
Jika Anda ingin menggunakan penskalaan otomatis vertikal dengan operator Spark, tambahkan baris berikut ke perintah instalasi untuk mengizinkan webhook untuk operator:
--set webhook.enable=true
-
Verifikasi bahwa Anda menginstal bagan Helm dengan
helm list
perintah:helm list --namespace spark-operator -o yaml
helm list
Perintah harus mengembalikan informasi rilis bagan Helm yang baru Anda gunakan:app_version: v1beta2-1.3.8-3.1.1 chart: spark-operator-
7.2.0
name: spark-operator-demo namespace: spark-operator revision: "1" status: deployed updated: 2023-03-14 18:20:02.721638196 +0000 UTC -
Instalasi lengkap dengan opsi tambahan apa pun yang Anda butuhkan. Untuk informasi lebih lanjut, lihat
spark-on-k8s-operator
dokumentasi di GitHub.
Jalankan aplikasi Spark
Operator Spark didukung dengan Amazon EMR 6.10.0 atau lebih tinggi. Ketika Anda menginstal operator Spark, itu membuat akun layanan emr-containers-sa-spark
untuk menjalankan aplikasi Spark secara default. Gunakan langkah-langkah berikut untuk menjalankan aplikasi Spark dengan operator Spark di Amazon EMR pada EKS 6.10.0 atau lebih tinggi.
-
Sebelum Anda dapat menjalankan aplikasi Spark dengan operator Spark, selesaikan langkah-langkah di Menyiapkan operator Spark untuk Amazon di EMR EKS dan. Instal operator Spark
-
Buat file
SparkApplication
definisispark-pi.yaml
dengan isi contoh berikut:apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi namespace: spark-operator spec: type: Scala mode: cluster image: "895885662937.dkr.ecr.us-west-2.amazonaws.com/spark/emr-6.10.0:latest" imagePullPolicy: Always mainClass: org.apache.spark.examples.SparkPi mainApplicationFile: "local:///usr/lib/spark/examples/jars/spark-examples.jar" sparkVersion: "3.3.1" restartPolicy: type: Never volumes: - name: "test-volume" hostPath: path: "/tmp" type: Directory driver: cores: 1 coreLimit: "1200m" memory: "512m" labels: version: 3.3.1 serviceAccount: emr-containers-sa-spark volumeMounts: - name: "test-volume" mountPath: "/tmp" executor: cores: 1 instances: 1 memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp"
-
Sekarang, kirimkan aplikasi Spark dengan perintah berikut. Ini juga akan membuat
SparkApplication
objek bernamaspark-pi
:kubectl apply -f spark-pi.yaml
-
Periksa peristiwa untuk
SparkApplication
objek dengan perintah berikut:kubectl describe sparkapplication spark-pi --namespace spark-operator
Untuk informasi selengkapnya tentang mengirimkan aplikasi ke Spark melalui operator Spark, lihat Menggunakan a SparkApplication
spark-on-k8s-operator
GitHub
Gunakan Amazon S3 untuk penyimpanan
Untuk menggunakan Amazon S3 sebagai opsi penyimpanan file Anda, tambahkan konfigurasi berikut ke file Anda. YAML
hadoopConf: # EMRFS filesystem fs.s3.customAWSCredentialsProvider: com.amazonaws.auth.WebIdentityTokenCredentialsProvider fs.s3.impl: com.amazon.ws.emr.hadoop.fs.EmrFileSystem fs.AbstractFileSystem.s3.impl: org.apache.hadoop.fs.s3.EMRFSDelegate fs.s3.buffer.dir: /mnt/s3 fs.s3.getObject.initialSocketTimeoutMilliseconds: "2000" mapreduce.fileoutputcommitter.algorithm.version.emr_internal_use_only.EmrFileSystem: "2" mapreduce.fileoutputcommitter.cleanup-failures.ignored.emr_internal_use_only.EmrFileSystem: "true" sparkConf: # Required for EMR Runtime spark.driver.extraClassPath: /usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/share/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/usr/share/aws/hmclient/lib/aws-glue-datacatalog-spark-client.jar:/usr/share/java/Hive-JSON-Serde/hive-openx-serde.jar:/usr/share/aws/sagemaker-spark-sdk/lib/sagemaker-spark-sdk.jar:/home/hadoop/extrajars/* spark.driver.extraLibraryPath: /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:/docker/usr/lib/hadoop/lib/native:/docker/usr/lib/hadoop-lzo/lib/native spark.executor.extraClassPath: /usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/share/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/usr/share/aws/hmclient/lib/aws-glue-datacatalog-spark-client.jar:/usr/share/java/Hive-JSON-Serde/hive-openx-serde.jar:/usr/share/aws/sagemaker-spark-sdk/lib/sagemaker-spark-sdk.jar:/home/hadoop/extrajars/* spark.executor.extraLibraryPath: /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:/docker/usr/lib/hadoop/lib/native:/docker/usr/lib/hadoop-lzo/lib/native
Jika Anda menggunakan Amazon EMR rilis 7.2.0 dan yang lebih tinggi, konfigurasi disertakan secara default. Dalam hal ini, Anda dapat mengatur jalur file s3://
alih-alih <bucket_name>
/<file_path>
local://
di YAML file aplikasi Spark. <file_path>
Kemudian kirimkan aplikasi Spark seperti biasa.