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 EMR di 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 EMR di EKS.
-
Otentikasi klien Helm Anda ke registri Amazon ECR. Dalam perintah berikut, ganti
region-idnilai dengan pilihan Anda Wilayah AWS, danECR-registry-accountnilai yang sesuai untuk Wilayah dari Akun registri Amazon ECR berdasarkan Wilayah halaman.aws ecr get-login-password \ --regionregion-id| helm registry login \ --username AWS \ --password-stdinECR-registry-account.dkr.ecr.region-id.amazonaws.com -
Instal operator Spark dengan perintah berikut.
Untuk
--versionparameter bagan Helm, gunakan label rilis Amazon EMR Anda dengan awalan danemr-akhiran tanggal dihapus. Misalnya, denganemr-6.12.0-java17-latestrilis, tentukan6.12.0-java17. Contoh dalam perintah berikut menggunakanemr-7.9.0-latestrilis, sehingga menentukan7.9.0bagan Helm.--versionhelm install spark-operator-demo \ oci://895885662937.dkr.ecr.region-id.amazonaws.com/spark-operator \ --set emrContainers.awsRegion=region-id\ --version7.9.0\ --namespace spark-operator \ --create-namespaceSecara default, perintah membuat akun layanan
emr-containers-sa-spark-operatoruntuk operator Spark. Untuk menggunakan akun layanan yang berbeda, berikan argumennyaserviceAccounts.sparkoperator.name. Misalnya:--set serviceAccounts.sparkoperator.namemy-service-account-for-spark-operatorJika 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 listperintah:helm list --namespace spark-operator -o yamlhelm listPerintah harus mengembalikan informasi rilis bagan Helm yang baru Anda gunakan:app_version: v1beta2-1.3.8-3.1.1 chart: spark-operator-7.9.0name: 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-operatordokumentasi 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 di 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 EMR di EKS dan. Instal operator Spark
-
Buat file
SparkApplicationdefinisispark-pi.yamldengan 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
SparkApplicationobjek bernamaspark-pi:kubectl apply -f spark-pi.yaml -
Periksa peristiwa untuk
SparkApplicationobjek 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 SparkApplicationspark-on-k8s-operator GitHub
Gunakan Amazon S3 untuk penyimpanan
Untuk menggunakan Amazon S3 sebagai opsi penyimpanan file Anda, tambahkan konfigurasi berikut ke file YAMM Anda.
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 file YAMM aplikasi Spark. <file_path>
Kemudian kirimkan aplikasi Spark seperti biasa.