GDC menyediakan Dataproc Container untuk Spark. Ini adalah
lingkungan Apache Spark untuk pemrosesan data. Untuk mengetahui informasi selengkapnya tentang Apache
Spark, lihat https://spark.apache.org/. Gunakan container Dataproc Container for Spark untuk
menjalankan aplikasi Spark baru atau yang sudah ada dalam cluster
Kubernetes GDC dengan perubahan minimal. Jika Anda sudah terbiasa dengan alat Spark, Anda dapat terus menggunakannya.
Tentukan aplikasi Spark Anda dalam file YAML, dan GDC akan mengalokasikan resource untuk Anda. Container Dataproc Container for Spark dimulai dalam hitungan detik. Eksekutor Spark akan di-scale up atau dimatikan sesuai kebutuhan Anda.
Konfigurasi container dari Dataproc Container for Spark di GDC untuk menggunakan hardware khusus, seperti node hardware khusus atau GPU.
Prasyarat untuk menjalankan aplikasi Spark
Sebelum menjalankan aplikasi Spark, minta Administrator Platform (PA) Anda untuk memberi Anda akses ke peran Spark Operator (mkt-spark-operator) di namespace mkt-system.
Menjalankan aplikasi Spark 3 contoh
Membuat aplikasi Spark dalam container menyederhanakan menjalankan aplikasi big data di
lokasi Anda menggunakan GDC. Sebagai Operator Aplikasi
(AO), jalankan aplikasi Spark yang ditentukan dalam objek GKE dari
jenis resource kustom SparkApplication.
Untuk menjalankan dan menggunakan aplikasi Apache Spark 3 di GDC, selesaikan langkah-langkah berikut:
Periksa image
spark-operatordi project Anda untuk menemukan$DATAPROC_IMAGEyang akan dirujuk di aplikasi Spark Anda:export DATAPROC_IMAGE=$(kubectl get pod --kubeconfig INFRA_CLUSTER_KUBECONFIG \ --selector app.kubernetes.io/name=spark-operator -n mkt-system \ -o=jsonpath='{.items[*].spec.containers[0].image}' \ | sed 's/spark-operator/dataproc/')Contoh:
export DATAPROC_IMAGE=10.200.8.2:10443/dataproc-service/private-cloud-devel/dataproc:3.1-dataproc-17Tulis spesifikasi
SparkApplicationdan simpan dalam file YAML. Untuk mengetahui informasi selengkapnya, lihat bagian Menulis spesifikasi aplikasi Spark.Kirimkan, jalankan, dan pantau aplikasi Spark Anda seperti yang dikonfigurasi dalam spesifikasi
SparkApplicationdi cluster GKE dengan perintahkubectl. Untuk mengetahui informasi selengkapnya, lihat bagian Contoh aplikasi.Tinjau status permohonan.
Opsional: Tinjau log aplikasi. Untuk mengetahui informasi selengkapnya, lihat bagian Melihat log aplikasi Spark 3.
Gunakan aplikasi Spark untuk mengumpulkan dan menampilkan status driver dan eksekutor kepada pengguna.
Menulis spesifikasi aplikasi Spark
Spesifikasi SparkApplication mencakup komponen berikut:
- Kolom
apiVersion. - Kolom
kind. - Kolom
metadata. - Bagian
spec.
Untuk mengetahui informasi selengkapnya, lihat Menulis Spesifikasi SparkApplication di GitHub: https://github.com/kubeflow/spark-operator/blob/gh-pages/docs/user-guide.md#writing-a-sparkapplication-spec
Contoh aplikasi
Bagian ini menyertakan contoh berikut dengan spesifikasi
SparkApplication yang sesuai untuk menjalankan aplikasi Spark:
Spark Pi
Bagian ini berisi contoh untuk menjalankan aplikasi Spark Pi yang membutuhkan komputasi intensif yang memperkirakan 𝛑 (pi) dengan melempar anak panah ke dalam lingkaran.
Ikuti langkah-langkah berikut untuk menjalankan Spark Pi:
Terapkan contoh spesifikasi
SparkApplicationberikut di cluster infrastruktur org:apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi namespace: mkt-system spec: type: Python pythonVersion: "3" mode: cluster image: "${DATAPROC_IMAGE?}" imagePullPolicy: IfNotPresent mainApplicationFile: "local:///usr/lib/spark/examples/src/main/python/pi.py" sparkVersion: "3.1.3" restartPolicy: type: Never driver: cores: 1 coreLimit: "1000m" memory: "512m" serviceAccount: dataproc-addon-spark executor: cores: 1 instances: 1 memory: "512m"Pastikan contoh spesifikasi
SparkApplicationberjalan dan selesai dalam 1-2 menit menggunakan perintah berikut:kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG get SparkApplication spark-pi -n mkt-systemLihat Log Driver untuk melihat hasilnya:
kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG logs spark-pi-driver -n mkt-system | grep "Pi is roughly"Outputnya mirip dengan berikut ini:
Pi is roughly 3.1407357036785184
Untuk informasi selengkapnya, lihat referensi berikut:
- Untuk kode aplikasi, lihat artikel
Estimasi Pi dari dokumentasi Apache Spark:
https://spark.apache.org/examples.html. - Untuk contoh file YAML Spark Pi, lihat Menulis spesifikasi aplikasi Spark.
Spark SQL
Lakukan langkah-langkah berikut untuk menjalankan Spark SQL:
Untuk menjalankan aplikasi Spark SQL yang memilih nilai
1, gunakan kueri berikut:select 1;Terapkan contoh spesifikasi
SparkApplicationberikut di cluster infrastruktur org:apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: pyspark-sql-arrow namespace: mkt-system spec: type: Python mode: cluster image: "${DATAPROC_IMAGE?}" imagePullPolicy: IfNotPresent mainApplicationFile: "local:///usr/lib/spark/examples/src/main/python/sql/arrow.py" sparkVersion: "3.1.3" restartPolicy: type: Never driver: cores: 1 coreLimit: "1000m" memory: "512m" serviceAccount: dataproc-addon-spark executor: cores: 1 instances: 1 memory: "512m"Verifikasi bahwa contoh spesifikasi
SparkApplicationberjalan dan selesai dalam waktu kurang dari satu menit menggunakan perintah berikut:kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG get SparkApplication pyspark-sql-arrow -n mkt-system
Spark MLlib
Ikuti langkah-langkah berikut untuk menjalankan Spark MLlib:
Gunakan contoh Scala berikut untuk menjalankan instance Spark MLlib yang melakukan analisis statistik dan mencetak hasil ke konsol:
import org.apache.spark.ml.linalg.{Matrix, Vectors} import org.apache.spark.ml.stat.Correlation import org.apache.spark.sql.Row val data = Seq( Vectors.sparse(4, Seq((0, 1.0), (3, -2.0))), Vectors.dense(4.0, 5.0, 0.0, 3.0), Vectors.dense(6.0, 7.0, 0.0, 8.0), Vectors.sparse(4, Seq((0, 9.0), (3, 1.0))) ) val df = data.map(Tuple1.apply).toDF("features") val Row(coeff1: Matrix) = Correlation.corr(df, "features").head println(s"Pearson correlation matrix:\n $coeff1") val Row(coeff2: Matrix) = Correlation.corr(df, "features", "spearman").head println(s"Spearman correlation matrix:\n $coeff2")Terapkan contoh spesifikasi
SparkApplicationberikut di cluster infrastruktur org:apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-ml namespace: mkt-system spec: type: Scala mode: cluster image: "${DATAPROC_IMAGE?}" imagePullPolicy: IfNotPresent mainClass: org.apache.spark.examples.ml.SummarizerExample mainApplicationFile: "local:///usr/lib/spark/examples/jars/spark-examples_2.12-3.1.3.jar" sparkVersion: "3.1.3" restartPolicy: type: Never driver: cores: 1 coreLimit: "1000m" memory: "512m" serviceAccount: dataproc-addon-spark executor: cores: 1 instances: 1 memory: "512m"Verifikasi bahwa contoh spesifikasi
SparkApplicationberjalan dan selesai dalam waktu kurang dari satu menit menggunakan perintah berikut:kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG get SparkApplication spark-ml -n mkt-system
SparkR
Lakukan langkah-langkah berikut untuk menjalankan SparkR:
Gunakan contoh kode berikut untuk menjalankan instance SparkR yang memuat set data yang dibundel dan mencetak baris pertama:
library(SparkR) sparkR.session() df <- as.DataFrame(faithful) head(df)Terapkan contoh spesifikasi
SparkApplicationberikut di cluster infrastruktur org:apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-r-dataframe namespace: mkt-system spec: type: R mode: cluster image: "${DATAPROC_IMAGE?}" imagePullPolicy: Always mainApplicationFile: "local:///usr/lib/spark/examples/src/main/r/dataframe.R" sparkVersion: "3.1.3" restartPolicy: type: Never driver: cores: 1 coreLimit: "1000m" memory: "512m" serviceAccount: dataproc-addon-spark executor: cores: 1 instances: 1 memory: "512m"Verifikasi bahwa contoh spesifikasi
SparkApplicationberjalan dan selesai dalam waktu kurang dari satu menit menggunakan perintah berikut:kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG get SparkApplication spark-r-dataframe -n mkt-system
Melihat log aplikasi Spark 3
Spark memiliki dua jenis log berikut yang dapat Anda visualisasikan:
Gunakan terminal untuk menjalankan perintah.
Log pengemudi
Lakukan langkah-langkah berikut untuk melihat log driver aplikasi Spark Anda:
Menemukan pod driver Spark:
kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG get pods -n mkt-systemBuka log dari pod driver Spark:
kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG logs DRIVER_POD -n mkt-systemGanti
DRIVER_PODdengan nama pod driver Spark yang Anda temukan di langkah sebelumnya.
Log aktivitas
Anda dapat menemukan log peristiwa di jalur yang ditentukan dalam file YAML spesifikasi
SparkApplication.
Ikuti langkah-langkah berikut untuk melihat log peristiwa aplikasi Spark Anda:
- Buka file YAML spesifikasi
SparkApplication. - Cari kolom
specdalam file. - Temukan kolom
sparkConfyang berada di dalam kolomspec. - Temukan nilai kolom
spark.eventLog.diryang ada di bagiansparkConf. - Buka jalur untuk melihat log peristiwa.
Untuk contoh file YAML spesifikasi SparkApplication, lihat
Menulis spesifikasi aplikasi Spark.
Hubungi Account Manager Anda untuk mendapatkan informasi selengkapnya.