全部产品
Search
文档中心

AnalyticDB:Mengembangkan Pekerjaan Jupyter Interaktif

更新时间:Jul 15, 2025

AnalyticDB for MySQL Spark memungkinkan Anda menggunakan gambar Docker untuk memulai lingkungan pengembangan interaktif JupyterLab. Lingkungan ini membantu Anda terhubung ke AnalyticDB for MySQL Spark dan melakukan pengujian serta komputasi interaktif menggunakan sumber daya elastis dari AnalyticDB for MySQL.

Prasyarat

  • Sebuah kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, atau Data Lakehouse Edition telah dibuat.

  • Grup sumber daya pekerjaan telah dibuat untuk kluster AnalyticDB for MySQL.

  • Akun database telah dibuat untuk kluster AnalyticDB for MySQL.

  • Anda telah menyelesaikan otorisasi akun.

  • Jalur penyimpanan log aplikasi Spark telah dikonfigurasi.

    Catatan

    Masuk ke Konsol AnalyticDB for MySQL. Temukan kluster yang ingin Anda kelola dan klik ID kluster. Di panel navigasi di sebelah kiri, pilih Job Development > Spark JAR Development. Klik Log Settings. Di kotak dialog yang muncul, pilih jalur default atau tentukan jalur penyimpanan kustom. Anda tidak dapat mengatur jalur penyimpanan kustom ke direktori root dari OSS. Pastikan bahwa jalur penyimpanan kustom berisi setidaknya satu lapis folder.

Catatan Penggunaan

  • AnalyticDB for MySQL Spark mendukung pekerjaan Jupyter interaktif hanya dalam Python 3.7 atau Scala 2.12.

  • Pekerjaan Jupyter interaktif secara otomatis melepaskan sumber daya Spark setelah tidak aktif selama periode waktu tertentu. Waktu pelepasan default adalah 1.200 detik (sumber daya dilepaskan secara otomatis 1.200 detik setelah blok kode terakhir dijalankan). Anda dapat menggunakan perintah berikut di Jupyter Notebook Cell untuk mengonfigurasi parameter spark.adb.sessionTTLSeconds dan memodifikasi waktu pelepasan otomatis sumber daya Spark.

    %%configure -f
    {
       "spark.adb.sessionTTLSeconds": "3600"
    }

Terhubung ke AnalyticDB for MySQL Spark

Gunakan JupyterLab dalam AnalyticDB for MySQL gambar yang disediakan untuk terhubung ke Spark

  1. Instal dan mulai gambar Docker.

  2. Tarik gambar Jupyter dari AnalyticDB for MySQL. Jalankan perintah berikut:

    docker pull registry.cn-hangzhou.aliyuncs.com/adb-public-image/adb-spark-public-image:adb.notebook.0.5.pre
  3. Mulai lingkungan pengembangan interaktif JupyterLab.

    Sintaks perintah:

    docker run -it 
      -p {Port Host}:8888 
      -v {Path File Host}:{Path File Docker} 
      registry.cn-hangzhou.aliyuncs.com/adb-public-image/adb-spark-public-image:adb.notebook.0.5.pre
      -d {ID Instance ADB} 
      -r {Nama Grup Sumber Daya} 
      -e {Endpoint API} 
      -i {ID AK} 
      -k {Rahasia AK}
      -t {Token Sts} # Pilih salah satu Token Sts atau AK

    Tabel berikut menjelaskan parameter.

    Parameter

    Diperlukan

    Deskripsi

    -p

    Tidak

    Memetakan port host ke port kontainer. Tentukan parameter dalam format -p {Port Host}:{Port Kontainer}.

    Tentukan nilai acak untuk port host dan atur port kontainer menjadi 8888. Contoh: -p 8888:8888.

    -v

    Tidak

    Jika Anda tidak memasang path host dan menonaktifkan kontainer Docker, file yang sedang diedit mungkin hilang. Setelah Anda menonaktifkan kontainer Docker, kontainer akan mencoba menghentikan semua pekerjaan Spark interaktif yang sedang berjalan. Anda dapat menggunakan salah satu metode berikut untuk mencegah hilangnya file yang sedang diedit:

    • Saat memulai lingkungan pengembangan interaktif JupyterLab, pasang path host ke kontainer Docker dan simpan file pekerjaan di path file yang sesuai. Tentukan parameter dalam format -v {Path Host}:{Path File Docker}. Tentukan nilai acak untuk path file kontainer Docker. Nilai yang direkomendasikan: /root/jupyter.

    • Sebelum Anda menonaktifkan kontainer Docker, pastikan semua file telah disalin dan disimpan.

    Contoh: -v /home/admin/notebook:/root/jupyter. Dalam contoh ini, file host yang disimpan di path /home/admin/notebook dipasang ke path /root/jupyter dari kontainer Docker.

    Catatan

    Simpan file notebook yang sedang diedit ke folder /tmp. Setelah Anda menonaktifkan kontainer Docker, Anda dapat melihat file yang sesuai di path /home/admin/notebook dari host. Setelah Anda mengaktifkan kembali kontainer Docker, Anda dapat melanjutkan eksekusi file. Untuk informasi lebih lanjut, lihat Volumes.

    -d

    Ya

    ID kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, atau Data Lakehouse Edition.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL dan buka halaman Clusters untuk melihat ID kluster.

    -r

    Ya

    Nama grup sumber daya Job di kluster AnalyticDB for MySQL.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL, pilih Cluster Management > Resource Management di panel navigasi di sebelah kiri, dan kemudian klik tab Resource Groups untuk melihat nama grup sumber daya.

    -e

    Ya

    Endpoint kluster AnalyticDB for MySQL.

    Untuk informasi lebih lanjut, lihat Endpoint.

    -i

    Ya (dalam skenario tertentu)

    ID AccessKey dan Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM Anda.

    Untuk informasi tentang cara melihat ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin.

    -k

    -t

    Ya (dalam skenario tertentu)

    Token Layanan Keamanan (STS), yaitu kredensial identitas sementara dari peran RAM.

    Pengguna RAM dengan izin dapat memanggil operasi API AssumeRole - Dapatkan kredensial identitas sementara dari peran RAM dengan pasangan AccessKey mereka sendiri untuk mendapatkan token STS dari peran RAM dan menggunakan token STS untuk mengakses sumber daya Alibaba Cloud.

    Contoh:

    docker run -it  -p 8888:8888 -v /home/admin/notebook:/root/jupyter registry.cn-hangzhou.aliyuncs.com/adb-public-image/adb-spark-public-image:adb.notebook.0.5.pre -d amv-bp164l******** -r test -e adb.aliyuncs.com -i LTAI**************** -k ****************

    Setelah Anda memulai lingkungan pengembangan interaktif JupyterLab, informasi berikut dikembalikan. Anda dapat menyalin dan menempelkan URL http://127.0.0.1:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291 ke browser Anda dan gunakan JupyterLab untuk terhubung ke AnalyticDB for MySQL Spark.

    [I 2023-11-24 09:55:09.852 ServerApp] nbclassic | ekstensi berhasil dimuat.
    [I 2023-11-24 09:55:09.852 ServerApp] ekstensi sparkmagic diaktifkan!
    [I 2023-11-24 09:55:09.853 ServerApp] sparkmagic | ekstensi berhasil dimuat.
    [I 2023-11-24 09:55:09.853 ServerApp] Menyajikan notebook dari direktori lokal: /root/jupyter
    [I 2023-11-24 09:55:09.853 ServerApp] Jupyter Server 1.24.0 berjalan di:
    [I 2023-11-24 09:55:09.853 ServerApp] http://419e63fc7821:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291
    [I 2023-11-24 09:55:09.853 ServerApp]  atau http://127.0.0.1:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291
    [I 2023-11-24 09:55:09.853 ServerApp] Gunakan Control-C untuk menghentikan server ini dan mematikan semua kernel (dua kali untuk melewati konfirmasi).
    Catatan

    Jika pesan kesalahan muncul saat Anda memulai lingkungan pengembangan interaktif JupyterLab, Anda dapat melihat file proxy_{timestamp}.log untuk pemecahan masalah.

Gunakan Jupyter Notebook yang diinstal secara lokal untuk terhubung ke Spark

Instal dan konfigurasikan lingkungan Jupyter Notebook

  1. Instal JupyterLab atau JupyterHub.

  2. Instal plugin SparkMagic di Jupyter untuk menjalankan pekerjaan Spark interaktif. Pilih metode yang sesuai berdasarkan versi Jupyter Anda. Contoh berikut adalah untuk JupyterLab 3.x.

    Penting

    Semua langkah opsional harus dilakukan secara ketat tanpa melewatkan atau mengubah urutan. Jika Anda melewatkan langkah apa pun, insinyur yang bertugas tidak akan dapat menganalisis masalah lingkungan melalui log startup Jupyter, dan Anda harus menyelesaikan kesalahan sendiri.

    1. Instal SparkMagic.

      pip install sparkmagic
    2. Instal ipywidgets.

      pip install ipywidgets 
    3. (Opsional) Instal kernel pembungkus. Jalankan pip show sparkmagic, yang akan menampilkan path instalasi sparkmagic. Beralihlah ke direktori tersebut dan jalankan:

       jupyter-kernelspec install sparkmagic/kernels/sparkkernel
       jupyter-kernelspec install sparkmagic/kernels/pysparkkernel
       jupyter-kernelspec install sparkmagic/kernels/sparkrkernel
    4. (Opsional) Modifikasi file konfigurasi config.json SparkMagic (path default adalah ~/.sparkmagic/config.json), mengubah 127.0.0.1:5000 menjadi IP dan port yang ingin Anda dengarkan. Berikut adalah contoh struktur konfigurasi sebagian. Untuk detail lebih lanjut, lihat contoh terkait.

      "kernel_python_credentials": {
      "username": "",
      "password": "",
      "url": "http://127.0.0.1:5000",
      "auth": "None"
      },
      "kernel_scala_credentials": {
      "username": "",
      "password": "",
      "url": "http://127.0.0.1:5000",
      "auth": "None"
      },
      "kernel_r_credentials": {
      "username": "",
      "password": "",
      "url": "http://127.0.0.1:5000"
      },
    5. (Opsional) Aktifkan ekstensi server untuk mengubah kluster melalui kode.

      jupyter server extension enable --py sparkmagic

Mulai AnalyticDB for MySQL proxy

Anda dapat menggunakan salah satu metode berikut untuk memulai proxy AnalyticDB for MySQL.

Metode 1: Mulai proxy menggunakan Docker

  1. Instal dan mulai gambar Docker.

  2. Tarik gambar Jupyter dari AnalyticDB for MySQL. Jalankan perintah berikut:

    docker pull registry.cn-hangzhou.aliyuncs.com/adb-public-image/adb-spark-public-image:adb.notebook.0.5.pre
  3. Mulai proxy Docker. Eksekusi perintah berikut untuk memulai kontainer dan mendengarkan di port lokal 5000.

    docker run -it  
      -p 5000:5000 
      -v {Path File Host}:{Path File Docker}
      registry.cn-hangzhou.aliyuncs.com/adb-public-image/adb-spark-public-image:adb.notebook.0.5.pre
      -d {ID Instance ADB} 
      -r {Nama Grup Sumber Daya} 
      -e {Endpoint API} 
      -i {ID AK} 
      -k {Rahasia AK}
      -t {Token Sts} # Pilih salah satu Token Sts atau AK

    Tabel berikut menjelaskan parameter.

    Parameter

    Diperlukan

    Deskripsi

    -p

    Tidak

    Memetakan port host ke port kontainer. Tentukan parameter dalam format -p {Port Host}:{Port Kontainer}.

    Tentukan nilai acak untuk port host dan atur port kontainer menjadi 5000. Contoh: -p 5000:5000.

    -v

    Tidak

    Jika Anda tidak memasang path host dan menonaktifkan kontainer Docker, file yang sedang diedit mungkin hilang. Setelah Anda menonaktifkan kontainer Docker, kontainer akan mencoba menghentikan semua pekerjaan Spark interaktif yang sedang berjalan. Anda dapat menggunakan salah satu metode berikut untuk mencegah hilangnya file yang sedang diedit:

    • Saat memulai lingkungan pengembangan interaktif JupyterLab, pasang path host ke kontainer Docker dan simpan file pekerjaan di path file yang sesuai. Tentukan parameter dalam format -v {Path Host}:{Path File Docker}. Tentukan nilai acak untuk path file kontainer Docker. Nilai yang direkomendasikan: /root/jupyter.

    • Sebelum Anda menonaktifkan kontainer Docker, pastikan semua file telah disalin dan disimpan.

    Contoh: -v /home/admin/notebook:/root/jupyter. Dalam contoh ini, file host yang disimpan di path /home/admin/notebook dipasang ke path /root/jupyter dari kontainer Docker.

    Catatan

    Simpan file notebook yang sedang diedit ke folder /tmp. Setelah Anda menonaktifkan kontainer Docker, Anda dapat melihat file yang sesuai di path /home/admin/notebook dari host. Setelah Anda mengaktifkan kembali kontainer Docker, Anda dapat melanjutkan eksekusi file. Untuk informasi lebih lanjut, lihat Volumes.

    -d

    Ya

    ID kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, atau Data Lakehouse Edition.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL dan buka halaman Clusters untuk melihat ID kluster.

    -r

    Ya

    Nama grup sumber daya Job di kluster AnalyticDB for MySQL.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL, pilih Cluster Management > Resource Management di panel navigasi di sebelah kiri, dan kemudian klik tab Resource Groups untuk melihat nama grup sumber daya.

    -e

    Ya

    Endpoint kluster AnalyticDB for MySQL.

    Untuk informasi lebih lanjut, lihat Endpoint.

    -i

    Ya (dalam skenario tertentu)

    ID AccessKey dan Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM Anda.

    Untuk informasi tentang cara melihat ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin.

    -k

    -t

    Ya (dalam skenario tertentu)

    Token Layanan Keamanan (STS), yaitu kredensial identitas sementara dari peran RAM.

    Pengguna RAM dengan izin dapat memanggil operasi API AssumeRole - Dapatkan kredensial identitas sementara dari peran RAM dengan pasangan AccessKey mereka sendiri untuk mendapatkan token STS dari peran RAM dan menggunakan token STS untuk mengakses sumber daya Alibaba Cloud.

Metode 2: Instal proxy menggunakan baris perintah

  1. Unduh dan instal proxy

    pip install aliyun-adb-livy-proxy-0.0.1.zip
  2. Eksekusi perintah berikut untuk memulai proxy.

    Catatan

    Setelah proxy AnalyticDB for MySQL berhasil diinstal, Anda dapat menjalankan adbproxy --help untuk melihat daftar parameter.

    adbproxy  --db {ID Instance ADB} 
      --rg {Nama Grup Sumber Daya} 
      --endpoint {Endpoint API} 
      --host 127.0.0.1
      --port 5000
      -i {ID AK} 
      -k {Rahasia AK}
      -t {Token Sts} # Pilih salah satu Token Sts atau AK

    Tabel berikut menjelaskan parameter.

    Parameter

    Diperlukan

    Deskripsi

    --db

    Ya

    ID kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, atau Data Lakehouse Edition.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL dan buka halaman Clusters untuk melihat ID kluster.

    --rg

    Ya

    Nama grup sumber daya Job di kluster AnalyticDB for MySQL.

    Anda dapat masuk ke Konsol AnalyticDB for MySQL, pilih Cluster Management > Resource Management di panel navigasi di sebelah kiri, dan kemudian klik tab Resource Groups untuk melihat nama grup sumber daya.

    --endpoint

    Ya

    Endpoint kluster AnalyticDB for MySQL.

    Untuk informasi lebih lanjut, lihat Endpoint.

    --host

    Tidak

    Alamat IP lokal tempat layanan adbproxy terikat. Nilai default adalah 127.0.0.1.

    --port

    Tidak

    Nomor port tempat layanan adbproxy mendengarkan. Nilai default adalah 5000.

    -i

    Ya (dalam skenario tertentu)

    ID AccessKey dan Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM dengan AnalyticDB for MySQL izin akses.

    Untuk informasi tentang cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin.

    -k

    -t

    Ya (dalam skenario tertentu)

    Token Layanan Keamanan (STS), yaitu kredensial identitas sementara dari peran RAM.

    Pengguna RAM dengan izin dapat memanggil operasi API AssumeRole - Dapatkan kredensial identitas sementara dari peran RAM dengan pasangan AccessKey mereka sendiri untuk mendapatkan token STS dari peran RAM dan menggunakan token STS untuk mengakses sumber daya Alibaba Cloud.

  3. Setelah berhasil dimulai, konsol akan menampilkan informasi log terkait.

Mulai Jupyter

Gunakan perintah berikut untuk memulai lingkungan pengembangan interaktif Jupyter.

jupyter lab
Catatan

Jika Anda telah menetapkan alamat mendengarkan kustom, eksekusi jupyter lab --ip=*** untuk memulai Jupyter, di mana *** adalah alamat mendengarkan kustom Anda.

Setelah berhasil dimulai, informasi berikut dikembalikan. Anda dapat menyalin dan menempelkan URL http://127.0.0.1:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291 ke browser Anda untuk menggunakan Jupyter terhubung ke AnalyticDB for MySQL Spark.

[I 2025-07-02 17:36:16.051 ServerApp] Menyajikan notebook dari direktori lokal: /home/newuser
[I 2025-07-02 17:36:16.052 ServerApp] Jupyter Server 2.16.0 berjalan di:
[I 2025-07-02 17:36:16.052 ServerApp] http://419e63fc7821:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291
[I 2025-07-02 17:36:16.052 ServerApp]     http://127.0.0.1:8888/lab?token=1e2caca216c1fd159da607c6360c82213b643605f11ef291
[I 2025-07-02 17:36:16.052 ServerApp] Gunakan Control-C untuk menghentikan server ini dan mematikan semua kernel (dua kali untuk melewati konfirmasi).

Jalankan pekerjaan di Jupyter

Mulai sumber daya dan tentukan penggunaan ACU maksimum untuk pekerjaan

  1. Setelah terhubung ke AnalyticDB for MySQL Spark menggunakan Jupyter, klik PySpark pada halaman untuk membuat pekerjaan PySpark baru. Pekerjaan Spark akan berjalan dengan parameter konfigurasi default berikut:

    {
       "kind": "pyspark",
        "heartbeatTimeoutInSecond": "60",
        "spark.driver.resourceSpec": "medium",
        "spark.executor.resourceSpec": "medium",
        "spark.executor.instances": "1",
        "spark.dynamicAllocation.shuffleTracking.enabled": "true",
        "spark.dynamicAllocation.enabled": "true",
        "spark.dynamicAllocation.minExecutors": "0",
        "spark.dynamicAllocation.maxExecutors": "1",
        "spark.adb.sessionTTLSeconds": "1200"
    }
  2. Untuk memodifikasi parameter konfigurasi aplikasi Spark, Anda dapat menggunakan pernyataan %%configure -f.

    1. Mulai ulang kernel.

      Di bilah navigasi atas, pilih Kernel > Restart Kernel and Clear All Outputs. Pastikan tidak ada aplikasi Spark yang sedang berjalan yang ditampilkan di halaman pengembangan Jupyter.

      image

    2. Masukkan parameter konfigurasi aplikasi Spark kustom di Jupyter Notebook Cell.

      Penting

      Saat menentukan parameter konfigurasi aplikasi Spark kustom, Anda harus mengatur parameter spark.dynamicAllocation.enabled menjadi false.

      Contoh:

      Konfigurasi ini mengalokasikan 32 Executor untuk pekerjaan Spark, dengan setiap Executor memiliki spesifikasi medium (2 core dan 8 GB memori). Seluruh pekerjaan dapat mengalokasikan total 64 ACU sumber daya komputasi.

      %%configure -f
      {
         "spark.driver.resourceSpec":"large",
         "spark.sql.hive.metastore.version":"adb",
         "spark.executor.resourceSpec":"medium",
         "spark.adb.executorDiskSize":"100Gi",
         "spark.executor.instances":"32",
         "spark.dynamicAllocation.enabled":"false",
         "spark.network.timeout":"30000",
         "spark.memory.fraction":"0.75",
         "spark.memory.storageFraction":"0.3"
      }

      Untuk informasi lebih lanjut tentang parameter konfigurasi aplikasi Spark, lihat Parameter konfigurasi aplikasi Spark dan Situs resmi Spark.

  3. Klik tombol image untuk memodifikasi parameter konfigurasi aplikasi Spark.

    Penting
    • Setelah Anda menutup halaman Jupyter Notebook, parameter konfigurasi kustom yang ditentukan tidak lagi berlaku. Jika Anda tidak menentukan parameter aplikasi Spark setelah membuka kembali halaman Jupyter Notebook, parameter konfigurasi default digunakan untuk menjalankan pekerjaan Spark.

    • Saat menjalankan pekerjaan Spark di halaman Jupyter Notebook, semua konfigurasi pekerjaan ditulis langsung ke struktur JSON, bukan objek conf dari struktur JSON yang diperlukan saat Anda mengirim pekerjaan batch.

Jalankan pekerjaan

  1. Masukkan perintah spark untuk memulai SparkSession.image

    Catatan

    Klik Link di nilai pengembalian untuk mengakses antarmuka UI Spark dan melihat informasi seperti log pekerjaan Spark.

  2. Jalankan Spark SQL di Jupyter Notebook Cell untuk menanyakan daftar database yang tersedia di kluster AnalyticDB for MySQL.

    Penting

    Anda harus menambahkan %%sql sebelum menjalankan kode Spark SQL, jika tidak akan diurai sebagai kode Python secara default. Anda dapat menjalankan %%help untuk mempelajari lebih lanjut tentang perintah Magic dan penggunaannya.

    %%sql
    show databases

    imageHasil kueri sesuai dengan yang ada di AnalyticDB for MySQL.