All Products
Search
Document Center

DataWorks:Node MaxCompute Spark

Last Updated:Aug 25, 2026

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.

Catatan

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:

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

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

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

Catatan

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.

  1. Siapkan lingkungan Python secara lokal.

    Rujuk Versi Python PySpark dan dukungan dependensi untuk mengonfigurasi lingkungan Python yang diperlukan.

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

Catatan

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.

app jar or Python file

Configuration Item

Menentukan item konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:

  • Anda tidak perlu mengonfigurasi spark.hadoop.odps.access.id, spark.hadoop.odps.access.key, dan spark.hadoop.odps.end.point karena nilai-nilai tersebut secara default mengikuti nilai proyek MaxCompute. Jika Anda memiliki kebutuhan khusus, Anda dapat secara eksplisit mengonfigurasinya untuk mengganti nilai default.

  • Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, Anda perlu menambahkan konfigurasi dari spark-defaults.conf satu per satu ke konfigurasi node MaxCompute Spark, seperti jumlah Executor, ukuran memori, dan konfigurasi spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Main Class

Konfigurasikan nama kelas utama. Parameter ini wajib diisi ketika bahasa pengembangan adalah Java/Scala.

--class CLASS_NAME

Parameter

Anda dapat menambahkan parameter sesuai kebutuhan dan memisahkan beberapa parameter dengan spasi. DataWorks mendukung parameter penjadwalan. Format untuk Parameter adalah ${variable_name}. Setelah konfigurasi selesai, Anda harus memberikan nilai variabel tersebut di bagian Scheduling Parameters pada panel Scheduling Settings di bilah navigasi kanan.

Untuk informasi tentang format nilai parameter penjadwalan yang didukung, lihat Sumber dan ekspresi parameter penjadwalan.

[app arguments]

JAR Resources

Ini hanya didukung ketika bahasa pemrograman adalah Java/Scala.

File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management.

Perintah resource:

--jars JARS

File Resources

Menentukan resource file untuk pekerjaan.

--files FILES

Archive Resources

Menentukan resource arsip untuk pekerjaan. Hanya arsip .zip yang didukung.

--archives ARCHIVES

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.

app jar or Python file

Configuration Item

Menentukan item konfigurasi untuk mengirimkan pekerjaan. Perhatikan hal berikut:

  • Anda tidak perlu mengonfigurasi spark.hadoop.odps.access.id, spark.hadoop.odps.access.key, dan spark.hadoop.odps.end.point karena nilai-nilai tersebut secara default mengikuti nilai proyek MaxCompute (namun dapat dikonfigurasi secara eksplisit untuk alasan khusus guna mengganti nilai default).

  • Anda tidak perlu mengunggah file spark-defaults.conf. Sebagai gantinya, Anda perlu menambahkan setiap konfigurasi dari spark-defaults.conf ke pengaturan konfigurasi node MaxCompute Spark, seperti jumlah Executor, ukuran memori, dan konfigurasi spark.hadoop.odps.runtime.end.point.

--conf PROP=VALUE

Parameter

Anda dapat menambahkan parameter sesuai kebutuhan, dipisahkan dengan spasi. DataWorks mendukung parameter penjadwalan, yang harus dalam format ${variable_name} di bidang Parameter. Setelah Anda mengonfigurasi parameter, buka panel Scheduling Settings di bilah navigasi kanan dan berikan nilai untuk setiap variabel di bagian Scheduling Parameters.

Untuk informasi tentang format nilai parameter penjadwalan yang didukung, lihat Sumber dan ekspresi parameter penjadwalan.

[app arguments]

Python Resources

Ini hanya dapat digunakan ketika bahasa pengembangan adalah Python.

File resource harus diunggah ke DataWorks dan dikomit. Untuk informasi lebih lanjut, lihat Resource Management.

--py-files PY_FILES

File Resources

Menentukan resource file untuk pekerjaan.

--files FILES

Archive Resources

Menentukan resource arsip untuk pekerjaan.

--archives ARCHIVES

Prosedur

  1. Buat sumber daya.

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

  2. Pada node MaxCompute Spark yang telah dibuat, konfigurasikan parameter node dan parameter penjadwalan. Untuk informasi lebih lanjut, lihat Parameter.

  3. Untuk menjalankan pekerjaan sesuai jadwal, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasi penjadwalan node.

  4. Setelah mengonfigurasi pekerjaan node, deploy node tersebut. Untuk informasi lebih lanjut, lihat Deploy node/alur kerja.

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