Anda dapat menjalankan tugas Spark pada MaxCompute dalam mode lokal atau mode kluster. Anda juga dapat menjalankan tugas Spark offline pada MaxCompute dalam mode kluster di DataWorks untuk mengintegrasikan tugas dengan jenis node lainnya melalui penjadwalan. Topik ini menjelaskan cara mengonfigurasi dan menjadwalkan tugas Spark on MaxCompute di DataWorks.
Prasyarat
Sebuah node ODPS Spark telah dibuat. Untuk informasi lebih lanjut, lihat Buat dan kelola node ODPS.
Batasan
Jika terjadi kesalahan saat mengirimkan node ODPS Spark yang menggunakan versi Spark 3.X, atau ajukan tiket untuk menghubungi dukungan teknis guna memperbarui versi grup sumber daya eksklusif untuk penjadwalan yang digunakan untuk menjalankan node tersebut.
Informasi latar belakang
Spark on MaxCompute adalah layanan komputasi yang disediakan oleh MaxCompute dan kompatibel dengan Spark open source. Spark on MaxCompute menyediakan kerangka kerja komputasi Spark berdasarkan sistem sumber daya komputasi dan izin dataset yang terpadu. Layanan ini memungkinkan Anda menggunakan metode pengembangan pilihan Anda untuk mengirimkan dan menjalankan tugas Spark serta memenuhi berbagai kebutuhan pemrosesan dan analitik data. Di DataWorks, Anda dapat menggunakan node ODPS Spark untuk menjadwalkan dan menjalankan tugas Spark on MaxCompute serta mengintegrasikannya dengan jenis tugas lainnya.
Spark on MaxCompute mendukung pengembangan tugas menggunakan Java, Scala, atau Python. Anda dapat menjalankan tugas dalam mode lokal atau mode kluster. Selain itu, Anda dapat menjalankan tugas Spark offline pada MaxCompute dalam mode kluster di DataWorks. Untuk informasi lebih lanjut tentang mode operasi tugas Spark on MaxCompute, lihat Mode Operasi.
Persiapan
Node ODPS Spark memungkinkan Anda menggunakan Java, Scala, atau Python untuk mengembangkan dan menjalankan tugas Spark offline pada MaxCompute. Operasi dan parameter yang diperlukan bervariasi berdasarkan bahasa pemrograman yang digunakan. Anda dapat memilih bahasa pemrograman sesuai dengan kebutuhan bisnis Anda.
Java/Scala
Sebelum menjalankan kode Java atau Scala dalam node ODPS Spark, Anda harus menyelesaikan pengembangan kode untuk tugas Spark on MaxCompute di mesin lokal Anda dan mengunggah kode tersebut ke DataWorks sebagai sumber daya MaxCompute. Langkah-langkah yang perlu dilakukan adalah sebagai berikut:
Siapkan lingkungan pengembangan.
Siapkan lingkungan pengembangan berdasarkan sistem operasi yang digunakan. Untuk informasi lebih lanjut, lihat Siapkan Lingkungan Pengembangan Linux atau Siapkan Lingkungan Pengembangan Windows.
Kembangkan kode Java atau Scala.
Sebelum menjalankan kode Java atau Scala dalam node ODPS Spark, selesaikan pengembangan kode untuk tugas Spark on MaxCompute di mesin lokal Anda atau di lingkungan pengembangan yang telah disiapkan. Kami merekomendasikan penggunaan template proyek contoh yang disediakan oleh Spark on MaxCompute.
Kemas kode yang dikembangkan dan unggah ke DataWorks.
Setelah kode selesai dikembangkan, kemas kode tersebut dan unggah paket ke DataWorks sebagai sumber daya MaxCompute. Untuk informasi lebih lanjut, lihat Buat dan Gunakan Sumber Daya MaxCompute.
Bahasa Pemrograman: Python (Gunakan lingkungan Python default)
DataWorks memungkinkan Anda mengembangkan tugas PySpark dengan menulis kode ke sumber daya Python secara online di DataWorks dan mengirimkan serta menjalankan kode menggunakan node ODPS Spark. Untuk informasi tentang cara membuat sumber daya Python di DataWorks dan melihat contoh pengembangan aplikasi Spark on MaxCompute menggunakan PySpark, lihat Buat dan Gunakan Sumber Daya MaxCompute dan Kembangkan Aplikasi Spark on MaxCompute Menggunakan PySpark.
Anda dapat menggunakan lingkungan Python default yang disediakan oleh DataWorks untuk mengembangkan kode. Jika paket pihak ketiga yang didukung oleh lingkungan Python default tidak memenuhi persyaratan tugas PySpark, Anda dapat merujuk ke Bahasa Pemrograman: Python (Gunakan Lingkungan Python Kustom) untuk menyiapkan lingkungan Python kustom. Anda juga dapat menggunakan node PyODPS 2 atau node PyODPS 3, yang mendukung lebih banyak sumber daya Python untuk pengembangan.
Bahasa Pemrograman: Python (Gunakan lingkungan Python kustom)
Jika lingkungan Python default tidak memenuhi kebutuhan bisnis Anda, Anda dapat menyiapkan lingkungan Python kustom untuk menjalankan tugas Spark on MaxCompute dengan langkah-langkah berikut:
Siapkan lingkungan Python di mesin lokal Anda.
Lihat Versi Python PySpark dan Dependensi yang Didukung untuk mengonfigurasi lingkungan Python sesuai kebutuhan bisnis Anda.
Kemas kode untuk lingkungan Python dan unggah paket tersebut ke DataWorks.
Kemas kode untuk lingkungan Python dalam format ZIP dan unggah paket tersebut ke DataWorks sebagai sumber daya MaxCompute. Dengan cara ini, Anda dapat menjalankan tugas Spark on MaxCompute dalam lingkungan tersebut. Untuk informasi lebih lanjut, lihat Buat dan Gunakan Sumber Daya MaxCompute.
Deskripsi Parameter
Anda dapat menjalankan tugas Spark offline pada MaxCompute dalam mode kluster di DataWorks. Dalam mode ini, Anda harus menentukan metode Main sebagai titik masuk aplikasi kustom. Tugas Spark berakhir ketika Main memasuki status Success atau Fail. Anda harus menambahkan item konfigurasi dalam file spark-defaults.conf ke konfigurasi node ODPS Spark. Sebagai contoh, tambahkan item konfigurasi seperti jumlah executors, ukuran memori, dan spark.hadoop.odps.runtime.end.point.
Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, tambahkan item konfigurasi dalam file spark-defaults.conf ke konfigurasi node ODPS Spark satu per satu.

Parameter | Deskripsi | Perintah spark-submit |
Versi Spark | Versi Spark. Nilai valid: Spark1.x, Spark2.x, dan Spark3.x. Catatan Jika terjadi kesalahan saat Anda mengirimkan node ODPS Spark yang menggunakan versi Spark 3.X, ajukan tiket untuk menghubungi dukungan teknis guna memperbarui versi grup sumber daya eksklusif untuk penjadwalan yang digunakan untuk menjalankan node tersebut. | Tidak ada |
Bahasa | Bahasa pemrograman. Nilai valid: Java/Scala dan Python. Anda dapat memilih bahasa pemrograman berdasarkan kebutuhan bisnis Anda. | Tidak ada |
Sumber Daya Utama JAR | File sumber daya utama JAR atau Python. Anda harus mengunggah file sumber daya yang diperlukan ke DataWorks dan mengirimkan file sumber daya tersebut terlebih dahulu. Untuk informasi lebih lanjut, lihat Buat dan gunakan sumber daya MaxCompute. |
|
Item Konfigurasi | Item konfigurasi yang diperlukan untuk mengirimkan tugas Spark on MaxCompute.
|
|
Kelas Utama | Nama kelas utama. Parameter ini hanya diperlukan jika Anda mengatur parameter Bahasa ke |
|
Parameter | Anda dapat menambahkan parameter berdasarkan kebutuhan bisnis Anda. Pisahkan beberapa parameter dengan spasi. DataWorks memungkinkan Anda menambahkan Parameter Penjadwalan dalam format ${Nama Variabel}. Setelah parameter ditambahkan, Anda harus mengklik tab Properti di panel navigasi di sebelah kanan dan memberikan nilai kepada variabel terkait di bagian Parameter Penjadwalan. Catatan Untuk informasi tentang format parameter penjadwalan yang didukung, lihat Format yang didukung untuk parameter penjadwalan. |
|
Sumber daya lainnya | Jenis sumber daya berikut juga didukung. Anda dapat memilih jenis sumber daya berikut berdasarkan kebutuhan bisnis Anda.
Anda harus mengunggah file sumber daya yang diperlukan ke DataWorks dan mengirimkan file sumber daya tersebut terlebih dahulu. Untuk informasi lebih lanjut, lihat Buat dan gunakan sumber daya MaxCompute. | Perintah untuk jenis sumber daya yang berbeda:
|
Contoh pengeditan kode sederhana
Bagian ini memberikan contoh sederhana untuk menunjukkan cara menggunakan node ODPS Spark dalam mengembangkan tugas Spark on MaxCompute. Dalam contoh ini, tugas Spark on MaxCompute dikembangkan untuk menentukan apakah string dapat dikonversi menjadi digit.
Buat sumber daya.
Di halaman DataStudio konsol DataWorks, buat sumber daya Python bernama spark_is_number.py. Untuk informasi lebih lanjut, lihat Buat dan Gunakan Sumber Daya MaxCompute. Contoh kode:
# -*- 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 dan kirimkan sumber daya.
Di node ODPS Spark yang dibuat, konfigurasikan parameter dan properti penjadwalan untuk tugas Spark on MaxCompute dengan merujuk pada bagian Deskripsi Parameter dalam topik ini, lalu simpan dan kirimkan node tersebut.
Parameter
Deskripsi
Versi Spark
Pilih Spark2.x.
Bahasa
Pilih Python.
Sumber Daya Python Utama
Sumber daya Python spark_is_number.py yang Anda buat.
Pergi ke Operation Center di lingkungan pengembangan untuk mengisi ulang data untuk node ODPS Spark. Untuk informasi lebih lanjut, lihat Isi Ulang Data dan Lihat Instance Pengisian Ulang Data (Versi Baru).
CatatanDataWorks tidak menyediakan titik masuk untuk menjalankan node ODPS Spark di DataStudio. Anda harus menjalankan node ODPS Spark di Operation Center dalam lingkungan pengembangan.
Lihat hasilnya.
Setelah instance pengisian ulang data berhasil dijalankan, klik tracking URL di log yang dihasilkan untuk melihat hasilnya. Informasi berikut dikembalikan:
False True True True True
Contoh pengeditan kode tingkat lanjut
Untuk informasi lebih lanjut tentang pengembangan tugas Spark on MaxCompute dalam skenario lainnya, lihat topik-topik berikut:
Langkah selanjutnya
Setelah menyelesaikan pengembangan tugas Spark on MaxCompute, Anda dapat melakukan operasi berikut:
Konfigurasikan properti penjadwalan: Anda dapat mengonfigurasi properti untuk penjadwalan periodik node. Jika Anda ingin sistem secara berkala menjadwalkan dan menjalankan tugas, konfigurasikan item seperti pengaturan ulang dan dependensi penjadwalan. Untuk informasi lebih lanjut, lihat Ikhtisar.
Debug node: Anda dapat men-debug dan menguji kode node untuk memeriksa apakah logika kode sesuai harapan. Untuk informasi lebih lanjut, lihat Prosedur Debugging.
Deploy node: Setelah menyelesaikan semua operasi pengembangan, Anda dapat mendeploy node. Setelah node dideploy, sistem akan secara berkala menjadwalkan node berdasarkan properti penjadwalan node. Untuk informasi lebih lanjut, lihat Deploy Node.
Aktifkan sistem untuk mendiagnosis tugas Spark: MaxCompute menyediakan alat Logview dan Spark Web UI. Anda dapat melihat log tugas Spark untuk memeriksa apakah tugas dikirimkan dan dijalankan sesuai harapan.