Menggunakan plugin Dataproc JupyterLab untuk sesi notebook interaktif dan batch serverless

Batasan dan pertimbangan Serverless Dataproc

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

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Aktifkan API Dataproc.

    Mengaktifkan API

  4. Menginstal Google Cloud CLI.
  5. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Aktifkan API Dataproc.

    Mengaktifkan API

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init

Menginstal plugin Dataproc JupyterLab

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

Untuk menginstal plugin, ikuti langkah berikut:

  1. Pastikan Python 3.8+ diinstal di komputer Anda. Anda dapat mendownload dan menginstal Python dari python.org/downloads.

    1. Verifikasi penginstalan Python 3.8+.

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

    pip3 install --upgrade jupyterlab
    1. Verifikasi instalasi JupyterLab 3.6.3+.

      pip3 show jupyterlab
  3. Instal plugin Dataproc JupyterLab.

    pip3 install dataproc-jupyter-plugin
    1. 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. Dialog ini berisi bagian Tugas dan Sesi Dataproc. Class ini juga dapat berisi bagian Dataproc Serverless Notebooks dan Dataproc Cluster Notebooks jika Anda memiliki akses ke notebook serverless Dataproc atau cluster Dataproc dengan komponen opsional Jupyter yang berjalan di project Anda.

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

Membuat template runtime Dataproc Serverless

Template runtime Dataproc Serverless (juga disebut template session) berisi setelan konfigurasi untuk menjalankan kode Spark dalam sebuah 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: Subnetwork harus mengaktifkan Akses Google Pribadi dan harus mengizinkan komunikasi subnet di semua port (lihat Dataproc Serverless untuk konfigurasi jaringan Spark).

      Jika subnet jaringan default untuk region yang Anda konfigurasikan saat menjalankan gcloud init di bagian 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 Metastore Dataproc di 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 agar Anda dapat mengakses log sesi selama dan setelah sesi.

    • Spark properties: Klik Add Property untuk setiap properti yang akan ditetapkan untuk sesi Spark serverless. Lihat properti Spark untuk melihat listingan properti Spark yang didukung dan tidak didukung, termasuk properti runtime Spark, resource, dan penskalaan otomatis.

    • Label: Klik Add Label untuk setiap label untuk menetapkan sesi Spark serverless.

  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 Launcher JupyterLab untuk melihat kartu template notebook yang tersimpan di halaman Launcher JupyterLab.

gcloud

  1. Membuat 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 konfigurasikan saat menjalankan gcloud init di bagian 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 Dataproc JupyterLab, Anda dapat mengklik kartu template di halaman Peluncur JupyterLab untuk:

Meluncurkan notebook Jupyter di Dataproc Serverless

Bagian Dataproc Serverless Notebooks pada halaman Peluncur JupyterLab menampilkan kartu template notebook yang memetakan 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. Tulis dan uji kode notebook.

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

      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.

Luncurkan notebook pada Dataproc di cluster Compute Engine

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

Untuk meluncurkan notebook Jupyter di Dataproc di cluster Compute Engine:

  1. Klik kartu di bagian Dataproc Cluster Notebook.

  2. Saat status kernel berubah dari Unknown menjadi Idle, Anda dapat mulai menulis dan mengeksekusi 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 membangun 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 Launcher 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, perubahan tersebut akan ditulis ke Cloud Storage.

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

  • 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 Dataproc JupyterLab, 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

Klik kartu kernel PySpark di bagian Dataproc Serverless Notebooks atau Dataproc Cluster Notebook dari halaman Launcher JupyterLab untuk membuka notebook PySpark guna menulis dan mengeksekusi kode SQL.

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

BigQuery SQL: Konektor Spark BigQuery 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 Anda menggunakan Dataproc Serverless 2.0 atau runtime 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 pada 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 Dataproc Cluster Notebook di halaman Launcher JupyterLab untuk membuka notebook bagi pengembangan kode Scala.

Penjelajah metadata

Jika instance Dataproc Metastore (DPMS) dilampirkan ke template runtime Dataproc Serverless atau Dataproc di cluster Compute Engine, skema instance DPMS akan ditampilkan di Metadata Explorer JupyterLab 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 bilah sisi.

Anda dapat mencari {i>database<i}, tabel, atau kolom di {i>Metadata Explorer<i}. Klik database, tabel, atau nama kolom untuk melihat metadata yang terkait.

Men-deploy kode

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

  • Menjalankan kode notebook Anda di infrastruktur Dataproc Serverless

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

Menjalankan kode notebook di Dataproc Serverless

  • Klik ikon Run atau tekan tombol Shift-Return untuk menjalankan kode dalam sel notebook.

  • Gunakan menu Run untuk menjalankan kode di satu atau beberapa sel notebook.

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

Mengirim tugas batch ke Dataproc di cluster 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 Dataproc JupyterLab, 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 yang 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 Clusters. Tab Clusters dipilih untuk mencantumkan Dataproc yang aktif di cluster 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 Actions untuk meng-clone, menghentikan, atau menghapus tugas.

Untuk melihat dan mengelola tugas Dataproc di Compute Engine:

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