Spark on MaxCompute mendukung eksekusi pekerjaan dalam mode lokal maupun kluster. Di DataWorks, Anda dapat menjalankan pekerjaan offline Spark on MaxCompute dalam mode kluster untuk mengintegrasikannya dengan jenis node lainnya guna penjadwalan. Dokumen ini menjelaskan cara mengonfigurasi dan menjadwalkan pekerjaan Spark on MaxCompute menggunakan DataWorks.
Ikhtisar
Spark on MaxCompute adalah layanan komputasi yang disediakan oleh MaxCompute dan kompatibel dengan Spark open source. Layanan ini menyediakan kerangka kerja komputasi Spark berbasis sistem sumber daya dan izin terpadu, memungkinkan Anda mengirimkan dan menjalankan pekerjaan Spark menggunakan alur pengembangan yang sudah dikenal untuk berbagai kebutuhan pemrosesan dan analisis data. Di DataWorks, Anda dapat menggunakan node MaxCompute Spark untuk menjadwalkan dan menjalankan pekerjaan Spark on MaxCompute serta mengintegrasikannya dengan pekerjaan lainnya.
Spark on MaxCompute mendukung pengembangan dalam Java, Scala, dan Python, serta eksekusi pekerjaan dalam mode lokal atau kluster. Saat menjalankan pekerjaan offline Spark on MaxCompute di DataWorks, pekerjaan tersebut dieksekusi dalam mode kluster. Untuk informasi lebih lanjut tentang mode eksekusi Spark on MaxCompute, lihat Mode eksekusi.
Persyaratan izin
Untuk mengembangkan pekerjaan, Pengguna RAM harus ditambahkan ke ruang kerja yang sesuai dan diberikan peran Development atau Workspace Administrator. Peran Workspace Administrator mencakup izin yang luas dan harus diberikan dengan hati-hati. Untuk informasi lebih lanjut tentang cara menambahkan anggota ke ruang kerja, lihat Tambahkan anggota ruang kerja.
Jika Anda menggunakan Akun Alibaba Cloud, Anda dapat melewati langkah ini.
Batasan
Jika Anda mengalami error saat mengirimkan node MaxCompute Spark yang menggunakan Spark 3.x, Anda harus membeli dan menggunakan kelompok sumber daya arsitektur tanpa server. Untuk informasi lebih lanjut, lihat Gunakan kelompok sumber daya arsitektur tanpa server.
Sebelum memulai
Node MaxCompute Spark mendukung eksekusi pekerjaan offline Spark on MaxCompute menggunakan Java/Scala dan Python. Langkah pengembangan dan antarmuka konfigurasi berbeda untuk setiap bahasa. Pilih bahasa berdasarkan kebutuhan bisnis Anda.
Java/Scala
Sebelum menjalankan kode Java atau Scala di node MaxCompute Spark, Anda harus mengembangkan kode pekerjaan Spark on MaxCompute secara lokal dan mengunggahnya sebagai resource MaxCompute ke DataWorks. Ikuti langkah-langkah berikut:
-
Siapkan lingkungan pengembangan.
Siapkan lingkungan pengembangan untuk menjalankan pekerjaan Spark on MaxCompute sesuai sistem operasi Anda. Untuk informasi lebih lanjut, lihat Siapkan lingkungan pengembangan Linux dan Siapkan lingkungan pengembangan Windows.
-
Kembangkan kode Java/Scala.
Sebelum menjalankan kode di node MaxCompute Spark, kembangkan kode Spark on MaxCompute Anda secara lokal atau di lingkungan yang sudah ada. Kami menyarankan menggunakan templat proyek contoh yang disediakan oleh Spark on MaxCompute.
-
Paket kode dan unggah ke DataWorks.
Setelah selesai mengembangkan, paket kode Anda dan unggah ke DataWorks sebagai resource MaxCompute. Untuk informasi lebih lanjut, lihat Resource Management.
Python dengan lingkungan default
Anda dapat mengembangkan pekerjaan PySpark di DataWorks dengan menulis kode langsung ke resource Python, lalu mengirimkan dan menjalankannya menggunakan node MaxCompute Spark. Untuk contoh pengembangan, lihat Contoh pengembangan PySpark.
Jika lingkungan default tidak memenuhi kebutuhan dependensi pekerjaan Anda, rujuk bagian Python (menggunakan lingkungan kustom) untuk menyiapkan lingkungan Python kustom. Atau, Anda dapat menggunakan node PyODPS 2 atau node PyODPS 3, yang menawarkan dukungan lebih baik untuk resource Python.
Python dengan lingkungan kustom
Jika lingkungan Python default tidak memenuhi kebutuhan bisnis Anda, ikuti langkah-langkah berikut untuk menggunakan lingkungan Python kustom dalam menjalankan pekerjaan Spark on MaxCompute Anda.
-
Siapkan lingkungan Python secara lokal.
Rujuk Versi Python PySpark dan dukungan dependensi untuk mengonfigurasi lingkungan Python yang diperlukan.
-
Paket lingkungan dan unggah ke DataWorks.
Kompres lingkungan Python ke dalam paket .zip dan unggah ke DataWorks sebagai resource MaxCompute. Paket ini akan menjadi lingkungan eksekusi untuk pekerjaan Spark on MaxCompute Anda.
Parameter
DataWorks menjalankan pekerjaan offline Spark on MaxCompute dalam mode Kluster. Dalam mode ini, Anda harus menentukan titik masuk program kustom main. Pekerjaan Spark yang sesuai akan berakhir ketika fungsi main selesai dengan status Success atau Fail. Selain itu, konfigurasi dalam file spark-defaults.conf harus ditambahkan satu per satu ke item konfigurasi node MaxCompute Spark, seperti jumlah executor, ukuran memori, dan konfigurasi spark.hadoop.odps.runtime.end.point.
Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, Anda perlu menambahkan konfigurasi dalam file spark-defaults.conf satu per satu ke item konfigurasi node MaxCompute Spark.
Java/Scala
|
Parameter |
Deskripsi |
Perintah spark-submit |
|
Spark Version |
Versi Spark. Nilai yang valid: Spark 1.x, Spark 2.x, dan Spark 3.x. Catatan
Jika Anda mengalami error saat mengirimkan node MaxCompute Spark yang menggunakan versi Spark 3.x, beli dan gunakan kelompok sumber daya arsitektur tanpa server. Untuk informasi lebih lanjut, lihat Gunakan kelompok sumber daya arsitektur tanpa server. |
— |
|
Language |
Bahasa pemrograman. Pilih Java/Scala atau Python berdasarkan bahasa yang digunakan untuk mengembangkan pekerjaan Spark on MaxCompute Anda. |
— |
|
Main JAR Resource |
Menentukan file resource JAR utama untuk pekerjaan. File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management. |
|
|
Configuration Item |
Menentukan item konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:
|
|
|
Main Class |
Konfigurasikan nama kelas utama. Parameter ini wajib diisi ketika bahasa pengembangan adalah |
|
|
Parameter |
Anda dapat menambahkan parameter sesuai kebutuhan dan memisahkan beberapa parameter dengan spasi. DataWorks mendukung parameter penjadwalan. Format untuk Parameter adalah Untuk informasi tentang format nilai parameter penjadwalan yang didukung, lihat Sumber dan ekspresi parameter penjadwalan. |
|
|
JAR Resources |
Ini hanya didukung ketika bahasa pemrograman adalah File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management. |
Perintah resource:
|
|
File Resources |
Menentukan resource file untuk pekerjaan. |
|
|
Archive Resources |
Menentukan resource arsip untuk pekerjaan. Hanya arsip .zip yang didukung. |
|
Python
|
Parameter |
Deskripsi |
Perintah spark-submit |
|
Spark Version |
Versi Spark. Nilai yang valid: Spark 1.x, Spark 2.x, dan Spark 3.x. Catatan
Jika Anda mengalami error saat mengirimkan node MaxCompute Spark yang menggunakan versi Spark 3.x, beli dan gunakan kelompok sumber daya arsitektur tanpa server. Untuk informasi lebih lanjut, lihat Gunakan kelompok sumber daya arsitektur tanpa server. |
— |
|
Language |
Bahasa pemrograman. Pilih Python berdasarkan bahasa yang digunakan untuk mengembangkan pekerjaan Spark on MaxCompute Anda. |
— |
|
Main Python Resource |
Menentukan file resource Python utama untuk pekerjaan. File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management. |
|
|
Configuration Item |
Menentukan item konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:
|
|
|
Parameter |
Anda dapat menambahkan parameter sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan, yang harus dalam format Untuk informasi tentang format nilai parameter penjadwalan yang didukung, lihat Sumber dan ekspresi parameter penjadwalan. |
|
|
Python Resources |
Ini hanya dapat digunakan ketika bahasa pengembangan adalah File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management. |
|
|
File Resources |
Menentukan resource file untuk pekerjaan. |
|
|
Archive Resources |
Menentukan resource arsip untuk pekerjaan. |
|
Prosedur
-
Buat sumber daya.
-
Temukan Resource Management di bilah navigasi kiri halaman Data Studio dan klik Create. Buat resource Python bertipe MaxCompute Spark dan beri nama
spark_is_number.py. Untuk informasi lebih lanjut, lihat Resource Management. Kodenya sebagai berikut:# -*- coding: utf-8 -*- import sys from pyspark.sql import SparkSession try: # for python 2 reload(sys) sys.setdefaultencoding('utf8') except: # python 3 not needed pass if __name__ == '__main__': spark = SparkSession.builder\ .appName("spark sql")\ .config("spark.sql.broadcastTimeout", 20 * 60)\ .config("spark.sql.crossJoin.enabled", True)\ .config("odps.exec.dynamic.partition.mode", "nonstrict")\ .config("spark.sql.catalogImplementation", "odps")\ .getOrCreate() def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False print(is_number('foo')) print(is_number('1')) print(is_number('1.3')) print(is_number('-1.37')) print(is_number('1e3')) -
Simpan resource.
-
-
Pada node MaxCompute Spark yang telah dibuat, konfigurasikan parameter node dan parameter penjadwalan. Untuk informasi lebih lanjut, lihat Parameter.
-
Untuk menjalankan pekerjaan sesuai jadwal, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasi penjadwalan node.
-
Setelah mengonfigurasi pekerjaan node, deploy node tersebut. Untuk informasi lebih lanjut, lihat Deploy node/alur kerja.
-
Setelah pekerjaan dideploy, Anda dapat membuka Pusat Operasi untuk melihat status eksekusi pekerjaan periodik. Untuk informasi lebih lanjut, lihat Memulai Pusat Operasi.
Catatan-
Node MaxCompute Spark tidak memiliki titik masuk eksekusi di Data Studio. Anda harus menjalankan pekerjaan Spark di Pusat Operasi dalam lingkungan pengembangan.
-
Setelah instans pengisian ulang data berhasil dijalankan, buka URL pelacakan di log eksekusi instans untuk melihat hasilnya.
-
Referensi
-
Untuk informasi lebih lanjut tentang pengembangan pekerjaan Spark on MaxCompute untuk kasus penggunaan lainnya, lihat topik-topik berikut:
-
FAQ Spark: Temukan solusi untuk masalah umum eksekusi Spark guna mempercepat troubleshooting. Untuk informasi lebih lanjut, lihat FAQ Spark.
-
Diagnosis pekerjaan Spark: MaxCompute menyediakan tool Logview dan Spark web UI. Gunakan log pekerjaan untuk memverifikasi bahwa pekerjaan telah dikirimkan dan berjalan dengan benar. Untuk informasi lebih lanjut, lihat Diagnosis pekerjaan Spark.