全部产品
Search
文档中心

DataWorks:Node MaxCompute Spark

更新时间:Feb 06, 2026

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.

Catatan

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:

  1. 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.

  2. 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.

  3. 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.

Catatan

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.

  1. 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.

  2. 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.

Catatan

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

image

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.

app jar or Python file

Configuration Properties

Menentukan Properti Konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:

  • Anda tidak perlu mengonfigurasi spark.hadoop.odps.access.id, spark.hadoop.odps.access.key, atau spark.hadoop.odps.end.point. Nilai-nilai tersebut secara default mengikuti nilai proyek MaxCompute. Anda dapat secara eksplisit mengonfigurasinya untuk mengganti nilai default jika diperlukan.

  • Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, Anda harus menambahkan setiap konfigurasi dari spark-defaults.conf ke Properti Konfigurasi node MaxCompute Spark. Contohnya termasuk jumlah executor, ukuran memori, dan properti spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Main class

Menentukan nama kelas utama. Parameter ini wajib diisi untuk Java/Scala.

--class CLASS_NAME

Arguments

Anda dapat menambahkan argumen sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan. Anda dapat mengonfigurasi arguments dalam format ${variable_name}. Setelah dikonfigurasi, Anda harus memberikan nilai variabel tersebut di bidang Scheduling Parameters pada tab Schedule di panel navigasi kanan.

Untuk informasi tentang format nilai yang didukung untuk parameter penjadwalan, lihat Configure scheduling parameters.

[app arguments]

JAR resource

Parameter ini hanya berlaku untuk Java/Scala.

Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource.

Perintah resource:

--jars JARS

File resource

Menentukan resource file.

--files FILES

Archives resource

Menentukan resource arsip. Anda hanya dapat memilih resource dalam format ZIP.

--archives ARCHIVES

Pekerjaan Python

image

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.

app jar or Python file

Configuration Properties

Menentukan Properti Konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:

  • Anda tidak perlu mengonfigurasi spark.hadoop.odps.access.id, spark.hadoop.odps.access.key, atau spark.hadoop.odps.end.point. Nilai-nilai tersebut secara default mengikuti nilai proyek MaxCompute. Anda dapat secara eksplisit mengonfigurasinya untuk mengganti nilai default jika diperlukan.

  • Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, Anda harus menambahkan setiap konfigurasi dari spark-defaults.conf ke Properti Konfigurasi node MaxCompute Spark. Contohnya termasuk jumlah executor, ukuran memori, dan properti spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Arguments

Anda dapat menambahkan argumen sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan. Anda dapat mengonfigurasi arguments dalam format ${variable_name}. Setelah dikonfigurasi, Anda harus memberikan nilai variabel tersebut di bidang Scheduling Parameters pada tab Schedule di panel navigasi kanan.

Untuk informasi tentang format nilai yang didukung untuk parameter penjadwalan, lihat Configure scheduling parameters.

[app arguments]

Python resource

Parameter ini hanya berlaku untuk Python.

Anda harus mengunggah dan mengirimkan file resource ke DataWorks. Untuk informasi selengkapnya, lihat Create and use a MaxCompute resource.

--py-files PY_FILES

File resource

Menentukan resource file.

--files FILES

Archives resource

Menentukan resource arsip. Anda hanya dapat memilih resource dalam format ZIP.

--archives ARCHIVES

Langkah-langkah

  1. Buat resource.

    1. 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'))
    2. Simpan resource tersebut.

  2. Pada node MaxCompute Spark yang telah Anda buat, konfigurasikan node dan parameter penjadwalannya. Untuk informasi selengkapnya, lihat Configure a MaxCompute Spark node.

  3. Jika Anda perlu menjalankan node secara berkala, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Configure scheduling properties.

  4. Setelah mengonfigurasi node, deploy node tersebut. Untuk informasi selengkapnya, lihat Deploy tasks.

  5. 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.

    Catatan
    • Anda 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