Anda dapat menjalankan pekerjaan Spark on MaxCompute dalam mode lokal atau kluster. DataWorks menjalankan pekerjaan batch Spark on MaxCompute dalam mode kluster, memungkinkan integrasi dan penjadwalan dengan jenis node lainnya. Topik ini menjelaskan cara mengonfigurasi dan menjadwalkan pekerjaan Spark on MaxCompute di DataWorks.
Ikhtisar
Spark on MaxCompute adalah layanan komputasi MaxCompute yang kompatibel dengan Spark open-source. Layanan ini menyediakan kerangka kerja komputasi Spark yang dibangun di atas sistem terpadu untuk sumber daya komputasi dan izin data, sehingga Anda dapat menggunakan pola pengembangan yang sudah dikenal untuk mengirimkan dan menjalankan pekerjaan Spark guna memenuhi berbagai kebutuhan pemrosesan dan analisis data. Di DataWorks, Anda dapat menggunakan node MaxCompute Spark untuk menjadwalkan dan menjalankan tugas Spark on MaxCompute serta mengintegrasikannya dengan pekerjaan lain.
Spark on MaxCompute mendukung pengembangan dalam Java, Scala, dan Python, serta dapat menjalankan tugas dalam mode lokal atau kluster. Saat Anda menjalankan pekerjaan batch Spark on MaxCompute di DataWorks, DataWorks mengeksekusinya dalam mode kluster. Untuk informasi selengkapnya tentang mode eksekusi Spark on MaxCompute, lihat Run modes.
Izin
(Opsional, untuk Pengguna RAM) Pengguna RAM yang mengembangkan tugas harus menjadi anggota ruang kerja dengan peran Developer atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang luas, jadi tetapkan dengan hati-hati. Untuk informasi selengkapnya tentang cara menambahkan anggota, lihat Add members to a workspace and assign roles to them.
Jika Anda menggunakan Main Account, Anda dapat melewati langkah ini.
Batasan
Jika Anda memilih Spark 3.x untuk node MaxCompute Spark dan pengiriman pekerjaan gagal, Anda harus membeli dan menggunakan kelompok sumber daya Serverless. Untuk informasi selengkapnya, lihat Purchase and use a Serverless resource group.
Prasyarat
Node MaxCompute Spark mendukung eksekusi pekerjaan batch Spark on MaxCompute yang ditulis dalam Java/Scala dan Python. Langkah pengembangan dan antarmuka konfigurasi berbeda untuk setiap bahasa. Pilih bahasa yang paling sesuai dengan 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 ke DataWorks sebagai resource MaxCompute. Ikuti langkah-langkah berikut:
Siapkan lingkungan pengembangan.
Siapkan lingkungan pengembangan untuk menjalankan tugas Spark on MaxCompute sesuai sistem operasi Anda. Untuk informasi selengkapnya, lihat Prepare a Java development environment dan Prepare a Scala development environment.
Kembangkan kode Java/Scala.
Sebelum menjalankan kode Java atau Scala di node MaxCompute Spark, kembangkan kode Spark on MaxCompute secara lokal atau di lingkungan yang sudah ada. Kami merekomendasikan penggunaan sample project template yang disediakan oleh Spark on MaxCompute untuk pengembangan.
Paketkan kode dan unggah ke DataWorks.
Setelah mengembangkan kode, paketkan dan unggah ke DataWorks sebagai resource MaxCompute. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource.
Python (default)
Di DataWorks, Anda dapat mengembangkan pekerjaan PySpark dengan menulis kode langsung di resource Python, lalu menggunakan node MaxCompute Spark untuk mengirimkan pekerjaan tersebut. Untuk informasi selengkapnya tentang cara membuat resource Python di DataWorks dan contoh pengembangan PySpark, lihat PySpark development examples.
Metode ini menggunakan lingkungan Python default yang disediakan oleh DataWorks, dengan jumlah terbatas paket pihak ketiga yang telah dipra-instal. Jika lingkungan default tidak memenuhi kebutuhan dependensi pekerjaan PySpark Anda, Anda dapat menyiapkan lingkungan Python kustom seperti yang dijelaskan di bagian Python (Use a custom Python environment). Alternatif lain, Anda dapat menggunakan node PyODPS 2 atau PyODPS 3, yang menawarkan dukungan lebih baik untuk resource Python.
Python (custom)
Jika lingkungan Python default yang disediakan platform tidak memenuhi kebutuhan bisnis Anda, ikuti langkah-langkah berikut untuk menggunakan lingkungan Python kustom dalam menjalankan tugas Spark on MaxCompute Anda.
Siapkan lingkungan Python secara lokal.
Anda dapat mengonfigurasi lingkungan Python sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Python versions and dependencies supported by PySpark.
Paketkan lingkungan dan unggah ke DataWorks.
Kompres lingkungan Python ke dalam paket ZIP dan unggah ke DataWorks sebagai resource MaxCompute. Resource ini akan berfungsi sebagai lingkungan eksekusi untuk tugas Spark on MaxCompute Anda.
Properti Konfigurasi
DataWorks menjalankan pekerjaan batch Spark on MaxCompute dalam mode kluster. Dalam mode ini, Anda harus menentukan titik masuk program, yaitu kelas main. Pekerjaan Spark berakhir ketika metode main selesai dengan status Success atau Fail. Selain itu, Anda harus menambahkan setiap konfigurasi dari file spark-defaults.conf ke Properti Konfigurasi node MaxCompute Spark. Contohnya termasuk jumlah instans executor, ukuran memori, dan properti spark.hadoop.odps.runtime.end.point.
Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, tambahkan setiap konfigurasi dari file spark-defaults.conf ke Properti Konfigurasi node MaxCompute Spark.
Pekerjaan Java/Scala

Parameter | Deskripsi | Perintah spark-submit |
Spark version | Versi yang didukung mencakup Spark 1.x, Spark 2.x, dan Spark 3.x. Catatan Jika Anda memilih Spark 3.x untuk node MaxCompute Spark dan pengiriman pekerjaan gagal, Anda harus membeli dan menggunakan kelompok sumber daya Serverless. Untuk informasi selengkapnya, lihat Purchase and use a Serverless resource group. | — |
Language | Pilih Java/Scala atau Python. Pilih bahasa yang Anda gunakan untuk pengembangan Spark on MaxCompute Anda. | — |
Main JAR | Menentukan file resource JAR utama untuk tugas. Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource. |
|
Configuration Properties | Menentukan Properti Konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:
|
|
Main class | Menentukan nama kelas utama. Parameter ini wajib diisi untuk |
|
Arguments | Anda dapat menambahkan argumen sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan. Anda dapat mengonfigurasi arguments dalam format Untuk informasi tentang format nilai yang didukung untuk parameter penjadwalan, lihat Configure scheduling parameters. |
|
JAR resource | Parameter ini hanya berlaku untuk Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource. | Perintah resource:
|
File resource | Menentukan resource file. |
|
Archives resource | Menentukan resource arsip. Anda hanya dapat memilih resource dalam format ZIP. |
|
Pekerjaan Python

Parameter | Deskripsi | Perintah spark-submit |
Spark version | Versi yang didukung mencakup Spark 1.x, Spark 2.x, dan Spark 3.x. Catatan Jika Anda memilih Spark 3.x untuk node MaxCompute Spark dan pengiriman pekerjaan gagal, Anda harus membeli dan menggunakan kelompok sumber daya Serverless. Untuk informasi selengkapnya, lihat Purchase and use a Serverless resource group. | — |
Language | Pilih Python. Pilih bahasa yang Anda gunakan untuk pengembangan Spark on MaxCompute Anda. | — |
Main Python resource | Menentukan file resource Python utama untuk tugas. Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource. |
|
Configuration Properties | Menentukan Properti Konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:
|
|
Arguments | Anda dapat menambahkan argumen sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan. Anda dapat mengonfigurasi arguments dalam format Untuk informasi tentang format nilai yang didukung untuk parameter penjadwalan, lihat Configure scheduling parameters. |
|
Python resource | Parameter ini hanya berlaku untuk Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource. |
|
File resource | Menentukan resource file. |
|
Archives resource | Menentukan resource arsip. Anda hanya dapat memilih resource dalam format ZIP. |
|
Langkah-langkah
Buat resource.
Pada halaman Data Development, temukan Resource Management di panel navigasi kiri. Klik Create dan pilih MaxCompute Spark Python untuk membuat resource. Beri nama resource tersebut
spark_is_number.py. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource. Contoh:# -*- coding: utf-8 -*- import sys from pyspark.sql import SparkSession try: # Untuk Python 2 reload(sys) sys.setdefaultencoding('utf8') except: # Tidak diperlukan untuk Python 3 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 tersebut.
Pada node MaxCompute Spark yang telah Anda buat, konfigurasikan node dan parameter penjadwalannya. Untuk informasi selengkapnya, lihat Configure a MaxCompute Spark node.
Jika Anda perlu menjalankan node secara berkala, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Configure scheduling properties.
Setelah mengonfigurasi node, deploy node tersebut. Untuk informasi selengkapnya, lihat Deploy tasks.
Setelah tugas dideploy, Anda dapat melihat status eksekusi tugas berkala di Operation and Maintenance Center. Untuk informasi selengkapnya, lihat View and manage auto-triggered tasks.
CatatanAnda tidak dapat menjalankan node MaxCompute Spark secara langsung dari editor node di halaman Data Development. Anda harus menjalankan tugas dari Operation and Maintenance Center.
Setelah Backfill Instance berhasil dijalankan, Anda dapat melihat hasilnya dengan membuka URL pelacakan dari Run Log.
Topik Terkait
Untuk informasi selengkapnya tentang skenario pengembangan umum untuk tugas Spark on MaxCompute, lihat topik-topik berikut:
FAQ Spark: Pelajari isu umum saat menjalankan pekerjaan Spark untuk membantu Anda memecahkan masalah exception lebih cepat. Untuk informasi selengkapnya, lihat FAQ about Spark.
Diagnosis pekerjaan Spark: MaxCompute menyediakan tool Logview dan Spark web UI untuk pekerjaan Spark. Anda dapat memeriksa log pekerjaan untuk memverifikasi pengiriman dan eksekusi pekerjaan yang benar. Untuk informasi selengkapnya, lihat Diagnose Spark jobs.