Menggunakan plugin JupyterLab Dataproc untuk sesi notebook interaktif dan batch serverless

Dokumen ini menjelaskan cara menginstal dan menggunakan plugin JupyterLab Dataproc di mesin atau VM yang memiliki akses ke layanan Google, seperti mesin lokal atau instance VM Compute Engine. Panduan ini juga menjelaskan cara mengembangkan dan deploy kode notebook Spark.

Setelah menginstal plugin JupyterLab Dataproc, Anda dapat menggunakannya untuk melakukan tugas berikut:

  • Meluncurkan sesi notebook interaktif Dataproc Serverless untuk Spark
  • Mengirimkan tugas batch Dataproc Serverless

Batasan dan pertimbangan Dataproc Serverless

  • Tugas Spark dijalankan dengan identitas akun layanan, bukan identitas pengguna yang mengirimkan.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Dataproc API.

    Enable the API

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Enable the Dataproc API.

    Enable the API

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Pastikan subnet VPC regional tempat Anda akan menjalankan sesi interaktif Dataproc Serverless telah mengaktifkan Akses Google Pribadi. Untuk mengetahui informasi selengkapnya, lihat Membuat template runtime Dataproc Serverless

Menginstal plugin JupyterLab Dataproc

Anda dapat menginstal dan menggunakan plugin JupyterLab Dataproc di mesin atau VM yang memiliki akses ke layanan Google, seperti mesin lokal atau instance VM Compute Engine.

Untuk menginstal plugin, ikuti langkah-langkah berikut:

  1. Download dan instal Python versi 3.8 atau yang lebih tinggi dari python.org/downloads.

    • Verifikasi penginstalan Python 3.8+.

      python3 --version
  2. Instal JupyterLab 3.6.3+ di komputer Anda.

    pip3 install --upgrade jupyterlab
    • Verifikasi penginstalan JupyterLab 3.6.3+.

       pip3 show jupyterlab
       ```
  3. Instal plugin JupyterLab Dataproc.

    pip3 install dataproc-jupyter-plugin
    • Jika versi JupyterLab Anda lebih lama dari 4.0.0, aktifkan ekstensi plugin.

       jupyter server extension enable dataproc_jupyter_plugin
       ```
  4. Mulai JupyterLab.

    jupyter lab
    1. Halaman Peluncur JupyterLab akan terbuka di browser Anda. Halaman ini berisi bagian Tugas dan Sesi Dataproc. Halaman ini juga dapat berisi bagian Notebook Dataproc Serverless dan Notebook Cluster Dataproc jika Anda memiliki akses ke notebook serverless Dataproc atau cluster Dataproc dengan komponen opsional Jupyter yang berjalan di project Anda.

    2. Secara default, sesi Dataproc Serverless untuk Spark Interaktif berjalan di project dan region yang Anda tetapkan saat menjalankan gcloud init di Sebelum memulai. Anda dapat mengubah setelan project dan wilayah untuk sesi dari halaman Setelan > Setelan Dataproc JupyterLab.

Membuat template runtime Dataproc Serverless

Template runtime Dataproc Serverless (juga disebut template session) berisi setelan konfigurasi untuk menjalankan kode Spark dalam sesi. Anda dapat membuat dan mengelola template runtime menggunakan Jupyterlab atau gcloud CLI.

JupyterLab

  1. Klik kartu New runtime template di bagian Dataproc Serverless Notebooks di halaman Launcher JupyterLab.

  2. Isi formulir Runtime template.

  3. Tentukan Display name dan Description, lalu masukkan atau konfirmasi setelan lainnya.

    Catatan:

    • Konfigurasi Jaringan: Subnet harus mengaktifkan Akses Google Pribadi dan mengizinkan komunikasi subnet di semua port (lihat Konfigurasi jaringan Dataproc Serverless untuk Spark).

      Jika subnet jaringan default untuk region yang Anda konfigurasi saat menjalankan gcloud init di Sebelum memulai tidak diaktifkan untuk Akses Google Pribadi:

      • Aktifkan untuk Akses Google Pribadi, atau
      • Pilih jaringan lain dengan subnetwork regional yang telah mengaktifkan Akses Google Pribadi. Anda dapat mengubah region yang digunakan Dataproc Serverless dari halaman Setelan > Setelan Dataproc JupyterLab.
    • Metastore: Untuk menggunakan layanan Dataproc Metastore dalam sesi Anda, pilih project ID, region, dan layanan metastore.

    • Waktu tidak ada aktivitas maksimum: Waktu tidak ada aktivitas notebook maksimum sebelum sesi dihentikan. Rentang yang diizinkan: 10 menit hingga 336 jam (14 hari).

    • Waktu sesi maksimum: Masa aktif maksimum sesi sebelum sesi dihentikan. Rentang yang diizinkan: 10 menit hingga 336 jam (14 hari).

    • PHS: Anda dapat memilih Persistent Spark History Server yang tersedia untuk memungkinkan Anda mengakses log sesi selama dan setelah sesi.

    • Properti Spark: Klik Tambahkan Properti untuk setiap properti yang akan ditetapkan untuk sesi Spark serverless Anda. Lihat properti Spark untuk mengetahui listingan properti Spark yang didukung dan tidak didukung, termasuk properti runtime, resource, dan penskalaan otomatis Spark.

    • Label: Klik Tambahkan Label untuk setiap label yang akan ditetapkan pada sesi Spark serverless Anda.

  4. Lihat template runtime Anda dari halaman Setelan > Setelan Dataproc.

    • Anda dapat menghapus template dari menu Action untuk template tersebut.
  5. Klik Simpan.

  6. Buka dan muat ulang halaman Peluncur JupyterLab untuk melihat kartu template notebook yang disimpan di halaman Peluncur JupyterLab.

gcloud

  1. Buat file YAML dengan konfigurasi template runtime Anda.

    YAML Sederhana

    environmentConfig:
      executionConfig:
        networkUri: default
    jupyterSession:
      kernel: PYTHON
      displayName: Team A
    labels:
      purpose: testing
    description: Team A Development Environment
    

    YAML Kompleks

    environmentConfig:
      executionConfig:
        serviceAccount: sa1
        # Choose either networkUri or subnetworkUri
        networkUri: default
        subnetworkUri: subnet
        networkTags:
         - tag1
        kmsKey: key1
        idleTtl: 3600s
        ttl: 14400s
        stagingBucket: staging-bucket
      peripheralsConfig:
        metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id
        sparkHistoryServerConfig:
          dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id
    jupyterSession:
      kernel: PYTHON
      displayName: Team A
    labels:
      purpose: testing
    runtimeConfig:
      version: "1.1"
      containerImage: gcr.io/my-project-id/my-image:1.0.1
      properties:
        "p1": "v1"
    description: Team A Development Environment
    

    Jika subnet jaringan default untuk region yang Anda konfigurasi saat menjalankan gcloud init di Sebelum memulai tidak diaktifkan untuk Akses Google Pribadi:

    • Aktifkan untuk Akses Google Pribadi, atau
    • Pilih jaringan lain dengan subnetwork regional yang telah mengaktifkan Akses Google Pribadi. Anda dapat mengubah region yang digunakan Dataproc Serverless dari halaman Setelan > Setelan Dataproc JupyterLab.
  2. Buat template sesi (runtime) dari file YAML dengan menjalankan perintah gcloud beta dataproc session-templates import berikut secara lokal atau di Cloud Shell:

    gcloud beta dataproc session-templates import TEMPLATE_ID \
        --source=YAML_FILE \
        --project=PROJECT_ID \
        --location=REGION
    

Meluncurkan dan mengelola notebook

Setelah menginstal plugin JupyterLab Dataproc, Anda dapat mengklik kartu template di halaman Peluncur JupyterLab untuk:

Meluncurkan notebook Jupyter di Dataproc Serverless

Bagian Dataproc Serverless Notebooks di halaman Peluncur JupyterLab menampilkan kartu template notebook yang dipetakan ke template runtime Dataproc Serverless (lihat Membuat template runtime Dataproc Serverless).

  1. Klik kartu untuk membuat sesi Dataproc Serverless dan meluncurkan notebook. Setelah pembuatan sesi selesai dan kernel notebook siap digunakan, status kernel akan berubah dari Unknown menjadi Idle.

  2. Menulis dan menguji kode notebook.

    1. Salin dan tempel kode Pi estimation PySpark berikut di sel notebook PySpark, lalu tekan Shift+Return untuk menjalankan kode.

      import random
          
      def inside(p):
          x, y = random.random(), random.random()
          return x*x + y*y < 1
          
      count = sc.parallelize(range(0, 10000)) .filter(inside).count()
      print("Pi is roughly %f" % (4.0 * count / 10000))

      Hasil notebook:

  3. Setelah membuat dan menggunakan notebook, Anda dapat menghentikan sesi notebook dengan mengklik Shut Down Kernel dari tab Kernel.

    • Jika Anda tidak menghentikan sesi, Dataproc akan menghentikan sesi saat timer tidak ada aktivitas sesi berakhir. Anda dapat mengonfigurasi waktu tidak ada aktivitas sesi di konfigurasi template runtime. Waktu tidak ada aktivitas sesi default adalah satu jam.

Meluncurkan notebook di cluster Dataproc di Compute Engine

Jika Anda membuat Dataproc di cluster Jupyter Compute Engine, halaman Peluncur JupyterLab akan berisi bagian Notebook Cluster Dataproc dengan kartu kernel yang telah diinstal sebelumnya.

Untuk meluncurkan notebook Jupyter di cluster Dataproc di Compute Engine:

  1. Klik kartu di bagian Dataproc Cluster Notebook.

  2. Saat status kernel berubah dari Unknown menjadi Idle, Anda dapat mulai menulis dan menjalankan kode notebook.

  3. Setelah membuat dan menggunakan notebook, Anda dapat menghentikan sesi notebook dengan mengklik Shut Down Kernel dari tab Kernel.

Mengelola file input dan output di Cloud Storage

Menganalisis data eksploratif dan membuat model ML sering kali melibatkan input dan output berbasis file. Dataproc Serverless mengakses file ini di Cloud Storage.

  • Untuk mengakses browser Cloud Storage, klik ikon browser Cloud Storage di sidebar halaman Peluncur JupyterLab, lalu klik dua kali folder untuk melihat kontennya.

  • Anda dapat mengklik jenis file yang didukung Jupyter untuk membuka dan mengeditnya. Saat Anda menyimpan perubahan pada file, file tersebut akan ditulis ke Cloud Storage.

  • Untuk membuat folder Cloud Storage baru, klik ikon folder baru, lalu masukkan nama folder.

  • Untuk mengupload file ke bucket atau folder Cloud Storage, klik ikon upload, lalu pilih file yang akan diupload.

Mengembangkan kode notebook Spark

Setelah menginstal plugin JupyterLab Dataproc, Anda dapat meluncurkan notebook Jupyter dari halaman Peluncur JupyterLab untuk mengembangkan kode aplikasi.

Pengembangan kode PySpark dan Python

Dataproc Serverless dan Dataproc di cluster Compute Engine mendukung kernel PySpark. Dataproc di Compute Engine juga mendukung kernel Python.

Pengembangan kode SQL

Untuk membuka notebook PySpark guna menulis dan menjalankan kode SQL, di halaman Peluncur JupyterLab, di bagian Dataproc Serverless Notebooks atau Dataproc Cluster Notebook, klik kartu kernel PySpark.

Spark SQL magic: Karena kernel PySpark yang meluncurkan Notebook Serverless Dataproc dimuat sebelumnya dengan Spark SQL magic, Anda dapat mengetik %%sparksql magic di bagian atas sel, lalu mengetik pernyataan SQL di sel, bukan menggunakan spark.sql('SQL STATEMENT').show() untuk menggabungkan pernyataan SQL.

BigQuery SQL: Konektor BigQuery Spark memungkinkan kode notebook Anda memuat data dari tabel BigQuery, melakukan analisis di Spark, lalu menulis hasilnya ke tabel BigQuery.

Runtime Dataproc Serverless 2.1 menyertakan konektor BigQuery Spark. Jika menggunakan runtime Dataproc Serverless 2.0 atau yang lebih lama untuk meluncurkan notebook Dataproc Serverless, Anda dapat menginstal Spark BigQuery Connector dengan menambahkan properti Spark berikut ke template runtime Dataproc Serverless:

spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar

Pengembangan kode Scala

Dataproc di cluster Compute Engine yang dibuat dengan image versi 2.0+, 2.1+, dan yang lebih baru, menyertakan Apache Toree, kernel Scala untuk platform Jupyter Notebook yang menyediakan akses interaktif ke Spark.

  • Klik kartu Apache Toree di bagian Notebook cluster Dataproc di halaman Peluncur JupyterLab untuk membuka notebook bagi pengembangan kode Scala.

    Gambar 1. Kartu kernel Apache Toree di halaman Peluncur JupyterLab.

Penjelajah metadata

Jika instance Dataproc Metastore (DPMS) disertakan ke template runtime Dataproc Serverless atau cluster Dataproc di Compute Engine, skema instance DPMS akan ditampilkan di JupyterLab Metadata Explorer saat notebook dibuka. DPMS adalah layanan Hive Metastore (HMS) yang terkelola sepenuhnya dan skalabel secara horizontal di Google Cloud.

Untuk melihat metadata HMS di Metadata Explorer:

Untuk membuka JupyterLab Metadata Explorer, klik ikonnya di sidebar.

Anda dapat menelusuri database, tabel, atau kolom di Metadata Explorer. Klik nama database, tabel, atau kolom untuk melihat metadata terkait.

Men-deploy kode

Setelah menginstal plugin JupyterLab Dataproc, Anda dapat menggunakan JupyterLab untuk:

  • Menjalankan kode notebook Anda di infrastruktur Dataproc Serverless

  • Kirim tugas batch ke infrastruktur Dataproc Serverless atau ke cluster Dataproc di Compute Engine.

Menjalankan kode notebook di Dataproc Serverless

  • Untuk menjalankan kode di sel notebook, klik Run atau tekan tombol Shift-Return untuk menjalankan kode di sel notebook.

  • Untuk menjalankan kode di satu atau beberapa sel notebook, gunakan menu Run.

Mengirimkan tugas batch ke Dataproc Serverless

  • Klik kartu Serverless di bagian Dataproc Jobs and Sessions di halaman Launcher JupyterLab.

  • Klik tab Batch, lalu klik Create Batch dan isi kolom Batch Info.

  • Klik Kirim untuk mengirimkan tugas.

Mengirimkan tugas batch ke cluster Dataproc di Compute Engine

  • Klik kartu Clusters di bagian Dataproc Jobs and Sessions di halaman Launcher JupyterLab.

  • Klik tab Jobs, lalu klik Submit Job.

  • Pilih Cluster, lalu isi kolom Job.

  • Klik Kirim untuk mengirimkan tugas.

Melihat dan mengelola resource

Setelah menginstal plugin JupyterLab Dataproc, Anda dapat melihat dan mengelola Dataproc Serverless dan Dataproc di Compute Engine dari bagian Tugas dan Sesi Dataproc di halaman Peluncur JupyterLab.

Klik bagian Dataproc Jobs and Sessions untuk menampilkan kartu Clusters dan Serverless.

Untuk melihat dan mengelola sesi Dataproc Serverless:

  1. Klik kartu Serverless.
  2. Klik tab Sesi, lalu ID sesi untuk membuka halaman Detail sesi guna melihat properti sesi, melihat log Google Cloud di Logs Explorer, dan menghentikan sesi. Catatan: Sesi Dataproc Serverless unik dibuat untuk meluncurkan setiap notebook Dataproc Serverless.

Untuk melihat dan mengelola batch Dataproc Serverless:

  1. Klik tab Batches untuk melihat daftar batch Dataproc Serverless di project dan region saat ini. Klik ID batch untuk melihat detail batch.

Untuk melihat dan mengelola Dataproc di cluster Compute Engine:

  1. Klik kartu Cluster. Tab Clusters dipilih untuk mencantumkan cluster Dataproc aktif di Compute Engine di project dan region saat ini. Anda dapat mengklik ikon di kolom Tindakan untuk memulai, menghentikan, atau memulai ulang cluster. Klik nama cluster untuk melihat detail cluster. Anda dapat mengklik ikon di kolom Tindakan untuk meng-clone, menghentikan, atau menghapus tugas.

Untuk melihat dan mengelola tugas Dataproc di Compute Engine:

  1. Klik kartu Tugas untuk melihat daftar tugas dalam project saat ini. Klik ID tugas untuk melihat detail tugas.