全部产品
Search
文档中心

MaxCompute:Mengatur lingkungan pengembangan Windows

更新时间:Jun 19, 2025

Topik ini menjelaskan cara mengatur lingkungan pengembangan Spark di MaxCompute yang berjalan pada sistem operasi Windows.

Jika Anda menggunakan sistem operasi Linux, ikuti petunjuk dalam Mengatur Lingkungan Pengembangan Linux untuk menyiapkan lingkungan pengembangan Spark di MaxCompute pada sistem operasi Linux.

Prasyarat

Sebelum mengatur lingkungan pengembangan Spark di MaxCompute, pastikan perangkat lunak berikut telah terpasang di sistem operasi Windows Anda:

null

Nomor versi perangkat lunak dan jalur instalasi yang digunakan dalam topik ini hanya untuk referensi. Versi sebenarnya yang harus diunduh dan dipasang mungkin berbeda tergantung pada sistem operasi Anda.

  • JDK

    Contoh ini menggunakan JDK 1.8.0_361. Untuk informasi lebih lanjut tentang cara mengunduh JDK, kunjungi situs resmi JDK.

  • Python

    Contoh ini menggunakan Python 3.10. Untuk informasi lebih lanjut tentang cara mengunduh Python, kunjungi situs resmi Python.

    null

    Contoh ini menggunakan Spark 2.4.5. Jika Anda menggunakan versi lain dari Spark, unduh dan pasang versi Python yang sesuai dengan versi Spark tersebut. Untuk informasi lebih lanjut, lihat https://pypi.org/project/pyspark/.

  • Maven

    Contoh ini menggunakan Apache Maven 3.8.7. Untuk informasi lebih lanjut tentang cara mengunduh Apache Maven, kunjungi situs resmi Maven.

  • Git

    Contoh ini menggunakan Git 2.39.1.windows.1. Untuk informasi lebih lanjut tentang cara mengunduh Git, kunjungi situs resmi Git.

  • Scala

    Contoh ini menggunakan Scala 2.13.10. Untuk informasi lebih lanjut tentang cara mengunduh Scala, kunjungi situs resmi Scala.

Unduh paket klien Spark di MaxCompute

Paket klien Spark di MaxCompute dirilis dengan fitur autentikasi MaxCompute. Ini memungkinkan Spark di MaxCompute berfungsi sebagai klien yang mengirimkan pekerjaan ke proyek MaxCompute Anda menggunakan skrip spark-submit. MaxCompute menyediakan paket rilis untuk Spark 1.x, Spark 2.x, dan Spark 3.x. Anda dapat mengunduh paket-paket ini dari tautan berikut. Contoh ini menggunakan Spark 2.4.5.

Konfigurasikan variabel lingkungan

Di sistem operasi Windows, klik kanan This PC dan pilih Properties dari menu pintasan. Pada halaman yang muncul, klik Advanced system setting. Di tab Lanjutan, klik Environment Variables dan konfigurasikan variabel lingkungan. Berikut adalah cara mengonfigurasi variabel lingkungan.

  • Konfigurasikan variabel lingkungan Java.

    • Dapatkan jalur instalasi Java.

    • Edit variabel lingkungan Java.

      1. Tambahkan variabel JAVA_HOME ke variabel sistem dan atur variable value ke jalur instalasi Java.

      2. Tambahkan %JAVA_HOME%\bin ke parameter Path dalam variabel sistem.

    • Periksa apakah variabel lingkungan Java berhasil dikonfigurasi.

      • Metode Verifikasi

        Tekan Win+R. Dalam kotak dialog Jalankan, masukkan cmd dan klik OK. Di Command Prompt, masukkan java -version. Jika hasil yang dikembalikan sesuai harapan, variabel lingkungan Java berhasil dikonfigurasi.

      • Contoh Hasil yang Diharapkan

        java version "1.8.0_361"
        Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
        Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)
  • Konfigurasikan variabel lingkungan Spark.

    • Dapatkan jalur tempat paket Spark di MaxCompute diekstraksi.

    • Edit variabel lingkungan Spark.

      1. Tambahkan parameter SPARK_HOME ke variabel sistem dan atur variable value ke jalur tempat paket klien Spark di MaxCompute diekstraksi.

      2. Tambahkan %SPARK_HOME%\bin ke parameter Path dalam variabel sistem.

  • Konfigurasikan variabel lingkungan Scala.

    Periksa apakah variabel lingkungan Scala berhasil dikonfigurasi.

    • Metode Verifikasi

      Tekan Win+R. Dalam kotak dialog Jalankan, masukkan cmd dan klik OK. Di Command Prompt, masukkan scala. Jika hasil yang dikembalikan sesuai harapan, variabel lingkungan Scala berhasil dikonfigurasi.

    • Contoh Hasil yang Diharapkan

      Welcome to Scala 2.13.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_361).
      Type in expressions for evaluation. Or try :help.
      
      scala>
  • Konfigurasikan variabel lingkungan Python.

    • Dapatkan jalur instalasi Python.

    • Edit variabel lingkungan Python.

      Tambahkan jalur instalasi Python dan subdirektori Scripts di jalur instalasi Python ke parameter Path dalam variabel sistem.

    • Periksa apakah variabel lingkungan Python berhasil dikonfigurasi.

      • Metode Verifikasi

        Tekan Win+R. Dalam kotak dialog Jalankan, masukkan cmd dan klik OK. Di Command Prompt, masukkan python --version. Jika hasil yang dikembalikan sesuai harapan, variabel lingkungan Python berhasil dikonfigurasi.

      • Contoh Hasil yang Diharapkan

        Python 3.10.6
  • Konfigurasikan variabel lingkungan Maven.

    • Dapatkan jalur tempat paket Maven diekstraksi.

    • Edit variabel lingkungan Maven.

      1. Tambahkan parameter MAVEN_HOME ke variabel sistem dan atur variable value ke jalur tempat paket Maven diekstraksi.

      2. Tambahkan %MAVEN_HOME%\bin ke parameter Path dalam variabel sistem.

    • Periksa apakah variabel lingkungan Maven berhasil dikonfigurasi.

      • Metode Verifikasi

        Tekan Win+R. Dalam kotak dialog Jalankan, masukkan cmd dan klik OK. Di Command Prompt, masukkan mvn --version. Jika hasil yang dikembalikan sesuai harapan, variabel lingkungan Maven berhasil dikonfigurasi.

      • Contoh Hasil yang Diharapkan

        # *** menunjukkan jalur parsial tempat paket Maven diekstraksi. 
        Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
        Maven home: D:\***\apache-maven-3.8.7-bin\apache-maven-3.8.7
        Java version: 1.8.0_361, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_361\jre
        Default locale: zh_CN, platform encoding: GBK
        OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
  • Konfigurasikan variabel lingkungan Git.

    Periksa apakah variabel lingkungan Git berhasil dikonfigurasi.

    • Metode Verifikasi

      Tekan Win+R. Dalam kotak dialog Jalankan, masukkan cmd dan klik OK. Di Command Prompt, masukkan git --version. Jika hasil yang dikembalikan sesuai harapan, variabel lingkungan Git berhasil dikonfigurasi.

    • Contoh Hasil yang Diharapkan

      git version 2.39.1.windows.1
  • Konfigurasikan file spark_defaults.conf.

    Jika Anda menggunakan klien Spark di MaxCompute untuk pertama kali, ubah nama file spark-defaults.conf.template di folder conf jalur ekstraksi tempat paket klien Spark di MaxCompute berada menjadi spark-defaults.conf. Kemudian, konfigurasikan file tersebut. Jika kedua file spark-defaults.conf.template dan spark-defaults.conf ada, Anda tidak perlu melakukan operasi pengubahan nama. Anda hanya perlu mengonfigurasi file spark-defaults.conf. Contoh kode:

    # Buka folder conf di jalur tempat paket klien Spark di MaxCompute diekstraksi. Jalur aktual mungkin berbeda. 
    
    # Buka file spark-defaults.conf.
    
    # Tambahkan konfigurasi berikut ke akhir file konfigurasi: 
    spark.hadoop.odps.project.name = <MaxCompute_project_name>
    spark.hadoop.odps.access.id = <AccessKey_id>
    spark.hadoop.odps.access.key = <AccessKey_secret>
    spark.hadoop.odps.end.point = <Endpoint>   # Titik akhir yang digunakan untuk menghubungkan klien Spark di MaxCompute ke proyek MaxCompute Anda. Anda dapat memodifikasi titik akhir berdasarkan kebutuhan bisnis Anda. 
    # Untuk Spark 2.3.0, atur spark.sql.catalogImplementation ke odps. Untuk Spark 2.4.5, atur spark.sql.catalogImplementation ke hive. 
    spark.sql.catalogImplementation={odps|hive}
    
    # Pertahankan konfigurasi parameter berikut:
    spark.hadoop.odps.task.major.version = cupid_v2
    spark.hadoop.odps.cupid.container.image.enable = true
    spark.hadoop.odps.cupid.container.vm.engine.type = hyper
    spark.hadoop.odps.moye.trackurl.host = http://jobview.odps.aliyun.com
    • MaxCompute_project_name: nama proyek MaxCompute yang ingin Anda akses.

      Parameter ini menentukan nama proyek MaxCompute Anda, bukan ruang kerja DataWorks tempat proyek MaxCompute tersebut berada. Anda dapat masuk ke konsol MaxCompute. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih Workspace > Projects untuk melihat nama proyek MaxCompute.

    • AccessKey_id: ID AccessKey yang digunakan untuk mengakses proyek MaxCompute.

      Anda dapat mendapatkan ID AccessKey dari halaman Pasangan AccessKey.

    • AccessKey_secret: Rahasia AccessKey yang sesuai dengan ID AccessKey.

      Anda dapat mendapatkan Rahasia AccessKey dari halaman Pasangan AccessKey.

    • Endpoint: titik akhir publik wilayah tempat proyek MaxCompute Anda berada.

      Untuk informasi lebih lanjut tentang titik akhir publik setiap wilayah, lihat Titik Akhir di Wilayah Berbeda (Internet).

    • VPC_endpoint: titik akhir VPC wilayah tempat proyek MaxCompute Anda berada.

      Untuk informasi lebih lanjut tentang titik akhir VPC setiap wilayah, lihat Titik Akhir di Wilayah Berbeda (VPC).

Siapkan proyek

Spark di MaxCompute menyediakan template proyek demo. Kami sarankan Anda mengunduh dan menyalin template untuk mengembangkan aplikasi Anda.

null

Dalam proyek demo, cakupan dependensi untuk Spark di MaxCompute disediakan. Jangan ubah cakupan ini. Jika tidak, pekerjaan yang Anda kirim mungkin tidak akan berjalan seperti yang diharapkan.

Siapkan proyek di sistem operasi Windows.

  • Unduh template Spark-1.x dan kompilasi template.

    # Mulai klien Git yang diunduh (Git Bash), buka direktori tempat proyek diunduh, lalu jalankan kode berikut:
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    # Buka folder proyek.
    cd MaxCompute-Spark/spark-1.x
    
    # Kompilasi paket proyek.
    mvn clean package
  • Unduh template Spark-2.x dan kompilasi template.

    # Mulai klien Git yang diunduh (Git Bash), buka direktori tempat proyek diunduh, lalu jalankan kode berikut:
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    # Buka folder proyek.
    cd MaxCompute-Spark/spark-2.x
    
    # Kompilasi paket proyek.
    mvn clean package
  • Unduh template Spark-3.x dan kompilasi template.

    # Mulai klien Git yang diunduh (Git Bash), buka direktori tempat proyek diunduh, lalu jalankan kode berikut:
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    # Buka folder proyek.
    cd MaxCompute-Spark/spark-3.x
    
    # Kompilasi paket proyek.
    mvn clean package

Setelah menjalankan perintah di atas, jika proyek gagal dibuat, beberapa konfigurasi lingkungan tidak valid. Ikuti petunjuk di atas untuk memeriksa konfigurasi. Jika ditemukan konfigurasi yang tidak valid, modifikasi konfigurasi tersebut.

Konfigurasikan dependensi

Dalam proyek Spark di MaxCompute yang Anda siapkan, konfigurasikan dependensi. Berikut adalah contoh perintah yang dapat Anda jalankan di klien Git untuk mengonfigurasi dependensi. Anda juga dapat langsung membuka file terkait dan mengonfigurasi dependensi.

  • Konfigurasikan dependensi yang diperlukan untuk mengakses tabel di proyek MaxCompute Anda.

    • Template Spark-1.x digunakan.

      # Buka folder spark-1.x. 
      cd MaxCompute-Spark/spark-1.x
      
      # Edit file POM untuk menambahkan dependensi odps-spark-datasource. 
      <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-spark-datasource_2.10</artifactId>
        <version>3.3.8-public</version>
      </dependency>                           
    • Template Spark-2.x digunakan.

      # Buka folder spark-2.x. 
      cd MaxCompute-Spark/spark-2.x
      
      # Edit file POM untuk menambahkan dependensi odps-spark-datasource. 
      <dependency>
          <groupId>com.aliyun.odps</groupId>
          <artifactId>odps-spark-datasource_2.11</artifactId>
          <version>3.3.8-public</version>
      </dependency>
  • Konfigurasikan dependensi yang diperlukan untuk mengakses Object Storage Service (OSS).

    Jika pekerjaan Anda perlu mengakses OSS, tambahkan dependensi berikut:

    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>hadoop-fs-oss</artifactId>
        <version>3.3.8-public</version>
    </dependency>

Untuk informasi lebih lanjut tentang dependensi yang diperlukan saat menggunakan template Spark-1.x, Spark-2.x, atau Spark-3.x, lihat Spark-1.x pom, Spark-2.x pom, atau Spark-3.x pom.

Pengujian asap

Setelah menyelesaikan operasi di atas, lakukan pengujian asap untuk memeriksa konektivitas ujung ke ujung Spark di MaxCompute.

Pengujian asap SparkPi

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk melakukan pengujian asap SparkPi untuk aplikasi Spark 2.x:

# Tekan Win+R. Dalam kotak dialog Run, masukkan cmd. 
# Buka folder bin di direktori D:\PC\spark\spark-2.4.5-odps0.33.2\ tempat pekerjaan disimpan. 
cd D:\PC\spark\spark-2.4.5-odps0.33.2\bin

# Jalankan perintah berikut: 
spark-submit \
--class com.aliyun.odps.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
/path/to/your/spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar

# Jika informasi log berikut ditampilkan, pengujian asap berhasil. 
19/06/11 11:57:30 INFO Client:
         client token: N/A
         diagnostics: N/A
         ApplicationMaster host: 11.222.166.90
         ApplicationMaster RPC port: 38965
         queue: queue
         start time: 1560225401092
         final status: SUCCEEDED

Pengujian asap IntelliJ IDEA dalam mode lokal

  1. Buka proyek yang diunduh di IntelliJ IDEA dan tambahkan direktori yang ditentukan oleh parameter --Jars pada Spark di MaxCompute ke template proyek IntelliJ IDEA. Untuk informasi lebih lanjut, lihat Catatan tentang menjalankan Spark di MaxCompute dalam mode lokal menggunakan IntelliJ IDEA.

  2. Tambahkan kode berikut di IntelliJ IDEA dalam mode lokal untuk debugging:

    val spark = SparkSession
          .builder()
          .appName("SparkPi")
          .config("spark.master", "local[4]") // Kode dapat berjalan setelah Anda mengatur spark.master ke local[N]. N menunjukkan jumlah pekerjaan Spark konkuren. 
          .getOrCreate()
  3. Anda harus menentukan konfigurasi terkait dalam file odps.conf di direktori main/resource saat menjalankan kode di IntelliJ IDEA dalam mode lokal. Anda tidak dapat langsung merujuk konfigurasi dalam file spark-defaults.conf. Kode berikut memberikan contoh.

    null

    Anda harus menentukan item konfigurasi dalam file odps.conf untuk Spark 2.4.5 dan versi berikutnya.

    dops.access.id=""
    odps.access.key=""
    odps.end.point=""
    odps.project.name=""

Tindakan pencegahan saat menggunakan Spark 2.4.5

  • Gunakan Spark 2.4.5 untuk mengirim pekerjaan

    Kirim pekerjaan dalam kluster Yarn. Untuk informasi lebih lanjut, lihat Mode Kluster.

  • Perubahan dalam Menggunakan Spark 2.4.5

    • Jika Anda mengirim pekerjaan dalam kluster Yarn, Anda harus menentukan HADOOP_CONF_DIR=$SPARK_HOME/conf untuk menambahkan variabel lingkungan SPARK_HOME.

    • Jika Anda melakukan debugging dalam mode lokal, Anda harus membuat file bernama odps.conf di jalur $SPARK_HOME/conf dan tambahkan konfigurasi berikut ke file tersebut:

      odps.project.name = 
      odps.access.id = 
      odps.access.key =
      odps.end.point =
  • Perubahan dalam Pengaturan Parameter Spark 2.4.5

    • spark.sql.catalogImplementation: Parameter ini diatur ke hive.

    • spark.sql.sources.default: Parameter ini diatur ke hive.

    • spark.sql.odps.columnarReaderBatchSize: menentukan jumlah baris dari mana pembaca vektor membaca data sekaligus. Nilai default: 4096.

    • spark.sql.odps.enableVectorizedReader: menentukan apakah akan mengaktifkan pembaca vektor. Nilai default: True.

    • spark.sql.odps.enableVectorizedWriter: menentukan apakah akan mengaktifkan penulis vektor. Nilai default: True.

    • spark.sql.odps.split.size: Parameter ini dapat digunakan untuk menyesuaikan konkurensi operasi pembacaan data pada tabel MaxCompute. Secara default, parameter ini diatur ke 256 untuk setiap partisi. Unit: MB.

Tindakan pencegahan saat menggunakan Spark 3.1.1

  • Gunakan Spark 3.1.1 untuk mengirim pekerjaan

    Kirim pekerjaan dalam kluster Yarn. Untuk informasi lebih lanjut, lihat Mode Kluster.

  • Perubahan dalam Menggunakan Spark 3.1.1

    • Jika Anda mengirim pekerjaan dalam kluster Yarn, Anda harus menentukan HADOOP_CONF_DIR=$SPARK_HOME/conf untuk menambahkan variabel lingkungan SPARK_HOME.

    • Jika Anda mengirim pekerjaan PySpark dalam kluster Yarn, Anda harus menambahkan konfigurasi berikut ke file spark-defaults.conf untuk menggunakan Spark untuk Python 3.

      spark.hadoop.odps.cupid.resources = public.python-3.7.9-ucs4.tar.gz
      spark.pyspark.python = ./public.python-3.7.9-ucs4.tar.gz/python-3.7.9-ucs4/bin/python3
    • Jika Anda melakukan debugging dalam mode lokal:

      • Anda harus membuat file odps.conf di direktori $SPARK_HOME/conf dan tambahkan konfigurasi berikut ke file tersebut:

        odps.project.name = 
        odps.access.id = 
        odps.access.key =
        odps.end.point =
      • Anda harus menambahkan spark.hadoop.fs.defaultFS = file:///. Contoh kode:

        val spark = SparkSession
          .builder()
          .config("spark.hadoop.fs.defaultFS", "file:///")
          .enableHiveSupport()
          .getOrCreate()
  • Perubahan dalam Pengaturan Parameter Spark 3.1.1

    • spark.sql.defaultCatalog: Parameter ini diatur ke odps.

    • spark.sql.catalog.odps: Parameter ini diatur ke org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog.

    • spark.sql.sources.partitionOverwriteMode: Parameter ini diatur ke dynamic.

    • spark.sql.extensions: Parameter ini diatur ke org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions.

    • spark.sql.odps.enableVectorizedReader: menentukan apakah akan mengaktifkan pembaca vektor. Nilai default: True.

    • spark.sql.odps.enableVectorizedWriter: menentukan apakah akan mengaktifkan penulis vektor. Nilai default: True.

    • spark.sql.catalog.odps.splitSizeInMB: Parameter ini dapat digunakan untuk menyesuaikan konkurensi operasi pembacaan data pada tabel MaxCompute. Secara default, parameter ini diatur ke 256 untuk setiap partisi. Unit: MB.