Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Pengembangan Remote sedang dalam tahap Beta.
Pengembangan Jarak Jauh Databricks memungkinkan Anda mengakses ruang kerja dan menjalankan beban kerja secara interaktif pada komputasi Databricks dari IDEs menggunakan terowongan SSH. Mudah untuk menyiapkan, menghilangkan kebutuhan akan manajemen lingkungan, dan menjaga semua kode dan data tetap aman dalam ruang kerja Databricks Anda.
Persyaratan
Untuk menggunakan Pengembangan Jarak Jauh, Anda harus memiliki:
- Databricks CLI versi 0.269 atau lebih tinggi diinstal pada mesin lokal dan autentikasi telah dikonfigurasi. Lihat Menginstal.
- Kluster khusus (pengguna tunggal) yang menjalankan Databricks Runtime 17.0 atau lebih tinggi. Lihat Gambaran umum komputasi khusus. Sebagai tambahan:
- Katalog Unity harus diaktifkan.
- Jika ada kebijakan komputasi, kebijakan tersebut tidak boleh melarang eksekusi pekerjaan.
Menyiapkan koneksi SSH
Pertama, siapkan terowongan SSH menggunakan perintah databricks ssh konfigurasi. Ganti <connection-name> dengan nama untuk koneksi, misalnya, my-connection.
databricks ssh setup --name <connection-name>
CLI meminta Anda untuk memilih kluster. Anda juga dapat menentukannya secara langsung dengan --cluster <cluster-id>:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Nota
Untuk pengguna IntelliJ, Databricks merekomendasikan untuk menambahkan --auto-start-cluster=false ke perintah penyiapan dan memulai kluster secara manual sebelum menyambungkan. Ini karena IDE JetBrains memulai semua kluster yang telah dikonfigurasi setiap kali diluncurkan, yang dapat mengakibatkan biaya komputasi tak terduga.
Terhubung ke Databricks
Selanjutnya, sambungkan ke Databricks menggunakan IDE atau terminal.
Menyambungkan menggunakan Visual Studio Code atau Kursor
Untuk Visual Studio Code, instal ekstensi SSH Jarak Jauh. Kursor menyertakan ekstensi SSH jarak jauh secara default.
Di menu utama IDE, klik Tampilkan>Palet Perintah. Pilih Remote-SSH: Pengaturan. Atau, pilih Preferensi: Buka Pengaturan Pengguna (JSON) untuk memodifikasi
settings.jsonsecara langsung.Di bawah Remote.SSH: Ekstensi Default (atau
remote.SSH.defaultExtensionsdisettings.json), tambahkanms-Python.Pythondanms-toolsai.jupyter.Jika Anda memodifikasi
settings.json:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Nota
Secara opsional, tingkatkan nilai Remote.SSH: Connect Timeout (atau
remote.SSH.connectTimeoutinsettings.json) untuk mengurangi kemungkinan kesalahan batas waktu lebih lanjut. Batas waktu default adalah 360.Di Palet Perintah, pilih Remote-SSH: Sambungkan ke Host.
Dari menu dropdown, pilih koneksi yang Anda siapkan di langkah pertama. IDE melanjutkan untuk terhubung di jendela baru.
Menyambungkan menggunakan IDE IntelliJ
- Ikuti tutorial server jarak jauh untuk pengaturan.
- Pada layar koneksi baru, masukkan:
-
Nama pengguna:
root -
Host:
<connection-name>
-
Nama pengguna:
Menyambungkan menggunakan terminal
ssh <connection-name>
Membuka proyek
Setelah menyambungkan, gunakan Buka Folder dari Palet Perintah dan navigasikan ke /Workspace/Users/<your-username>.
Nota
File di /Workspace, /Volumes, dan /dbfs tetap ada saat kluster di-restart. File di /home, /root, dan jalur lokal lainnya bersifat sementara dan hilang saat memulai ulang.
Jalankan kode (Visual Studio Code atau Cursor)
Untuk menjalankan kode menggunakan Pengembangan Jarak Jauh, Anda perlu memastikan bahwa lingkungan virtual Databricks disiapkan. Lingkungan ini mencakup semua pustaka DBR bawaan dan pustaka cakupan komputasi.
Jalankan
echo $DATABRICKS_VIRTUAL_ENVdari terminal dalam IDE.Contoh output:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonBuka Palet Perintah dan pilih Python: Pilih Interpreter. Tempelkan output dari atas.
Buka terminal baru dan lingkungan virtual harus diaktifkan secara otomatis.
Untuk menjalankan notebook Jupyter, pastikan bahwa lingkungan virtual dipilih sebagai kernel. Klik Pilih Kernel di kanan atas buku catatan.
Python file dan notebook .ipynb dapat dijalankan dan di-debug menggunakan ekstensi Python dan Jupyter standar.
Mengelola dependensi Python
Dependensi Python dapat dikelola secara global pada tingkat kluster atau dialokasikan ke proyek individual melalui notebook.
Pustaka kluster (disarankan)
Instal dependensi melalui UI ruang kerja di bawah Pustaka Komputasi>. Ini bertahan selama seluruh proses memulai ulang kluster dan tersedia di pythonEnv-xxx. Lihat Pustaka kluster.
penyiapan notebook khusus Project
Untuk dependensi cakupan proyek, jalankan notebook dengan berisi perintah %pip install pada awal setiap sesi.
# Install from pyproject.toml
%pip install .
# Install from a requirements file
%pip install -r requirements.txt
# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl
%pip perintah mencakup pagar pembatas khusus Databricks dan menyebarluaskan dependensi ke simpul eksekutor Spark. Ini memungkinkan fungsi yang ditentukan pengguna (UDF) dengan dependensi kustom.
Untuk contoh selengkapnya, lihat Mengelola pustaka dengan %pip perintah.
Anda tidak perlu menjalankan kembali buku catatan jika sesi tersambung kembali dalam waktu 10 menit. Ini dapat dikonfigurasi menggunakan -shutdown-delay dalam konfigurasi SSH Anda.
Nota
Beberapa sesi SSH pada kluster yang sama berbagi satu lingkungan virtual.
Keterbatasan
Pengembangan Jarak Jauh Databricks memiliki batasan berikut:
- Kluster bersama dengan beberapa pengguna dan tanpa server belum didukung.
- Ekstensi Databricks untuk Visual Studio Code dan Pengembangan Jarak Jauh belum kompatibel dan tidak boleh digunakan bersama-sama.
- File yang diedit di luar
/Workspace,/Volumes, dan/dbfshilang saat menghidupkan ulang kluster. - Maksimum 10 koneksi SSH diizinkan per kluster.
- Sesi tidak aktif dapat berakhir setelah 1 jam.
Perbedaan Notebook Databricks
Ada beberapa perbedaan dalam buku catatan saat menggunakan Pengembangan Jarak Jauh:
- File Python tidak menentukan databricks global apa pun (seperti
sparkataudbutils). Anda harus mengimpornya secara eksplisit denganfrom databricks.sdk.runtime import spark. - Untuk buku catatan ipynb, fitur-fitur ini tersedia:
- Databricks globals:
display,displayHTML,dbutils,table,sqludf,getArgument,sc,sqlContext,spark -
%sqlperintah magic untuk menjalankan sel SQL
- Databricks globals:
Untuk bekerja dengan sumber Python "notebooks":
Cari
jupyter.interactiveWindow.cellMarker.codeRegexdan atur ke:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Cari
jupyter.interactiveWindow.cellMarker.defaultdan atur ke:# COMMAND ----------
Troubleshooting
Bagian ini berisi informasi tentang mengatasi masalah umum.
Koneksi SSH gagal atau kehabisan waktu
- Pastikan kluster sedang berjalan di antarmuka ruang kerja.
- Periksa apakah port keluar 22 terbuka dan diizinkan di laptop, jaringan, dan VPN Anda.
- Tingkatkan batas waktu SSH. Lihat Menyambungkan menggunakan Visual Studio Code atau Kursor.
- Untuk kesalahan ketidakcocokan kunci, hapus
~/.databricks/ssh-tunnel-keysdan jalankandatabricks ssh setupkembali . - Untuk kesalahan "identifikasi host jarak jauh telah berubah", periksa
~/.ssh/known_hostsfile dan hapus entri yang terkait dengan kluster Anda. - Sesi SSH dapat turun setelah 1 jam dan tidak lebih dari 10 koneksi SSH dapat dilakukan ke satu kluster. Lihat Batasan.
Kesalahan autentikasi CLI
- Konfirmasikan profil Databricks CLI Anda valid menggunakan
databricks auth login. - Konfirmasikan bahwa Anda memiliki
CAN MANAGEizin pada kluster.
Kode saya tidak berfungsi
- Pastikan Anda telah menyiapkan lingkungan virtual Databricks, lihat Menjalankan kode (Visual Studio Code atau Cursor)
- Notebook IPYNB dan
*.pynotebook Databricks memiliki akses ke global Databricks, tetapi file Python*.pytidak. Lihat Perbedaan Notebook Databricks.
File terhapus atau pengaturan lingkungan direset setelah kluster dimulai ulang
- File di
/Workspace,/Volumes, dan/dbfsmount bertahan selama klaster melakukan restart. File di/home,/root, dan jalur lokal lainnya bersifat sementara dan hilang saat memulai ulang. - Gunakan manajemen pustaka kluster untuk dependensi persisten. Mengotomatiskan instalasi ulang menggunakan skrip init jika diperlukan. Lihat Apa itu skrip init?.
Penyiapan SSH gagal pada Windows (WSL)
Jalankan databricks ssh setup langsung di Windows, bukan dalam WSL. Instans Windows VS Code tidak dapat menemukan konfigurasi SSH yang dibuat di sisi WSL.
FAQ
Bagaimana Pengembangan Jarak Jauh berbeda dari Databricks Connect?
Databricks Connect memungkinkan Anda menulis kode menggunakan API Spark dan menjalankannya dari jarak jauh pada komputasi Databricks alih-alih dalam sesi Spark lokal. Ekstensi Databricks Visual Studio Code menggunakan Databricks Connect untuk menyediakan debugging kode pengguna yang terintegrasi di Databricks.
Pengembangan Jarak Jauh memungkinkan Anda mengakses ruang kerja dari IDE Anda dan memindahkan seluruh lingkungan pengembangan Anda ke kluster — Python, kernel, dan semua eksekusi yang berjalan pada Databricks dengan akses penuh ke sumber daya kluster.
Bagaimana kode dan data saya diamankan?
Semua kode berjalan dalam VPC cloud Databricks Anda. Tidak ada data atau kode yang meninggalkan lingkungan aman Anda. Lalu lintas SSH sepenuhnya dienkripsi.
Platform IDE apa yang didukung?
Visual Studio Code dan Kursor secara resmi didukung. IDE apa pun dengan kemampuan SSH kompatibel, tetapi hanya Visual Studio Code dan Kursor yang diuji.
Apakah semua fitur notebook Databricks tersedia dari IDE?
Beberapa fitur seperti display(), dbutils, dan %sql tersedia dengan batasan atau penyiapan manual. Lihat Perbedaan Notebook Databricks.
Apakah kluster saya akan dimulai secara otomatis saat saya tersambung menggunakan terowongan SSH?
Ya, tetapi jika diperlukan waktu lebih lama untuk memulai kluster daripada batas waktu koneksi, upaya koneksi akan gagal. Untuk mencegah hal ini, tingkatkan nilai Remote.SSH: Sambungkan Batas Waktu dari palet perintah (atau remote.SSH.connectTimeout di settings.json) untuk lebih mengurangi kemungkinan kesalahan waktu habis.
Bagaimana cara mengetahui apakah kluster saya berjalan?
Navigasi ke Komputasi di UI ruang kerja Databricks, dan periksa status kluster. Kluster harus menunjukkan Berjalan agar koneksi SSH berfungsi.
Bagaimana cara memutuskan sambungan sesi SSH/IDE saya?
Anda dapat memutuskan sesi dengan menutup jendela IDE Anda, menggunakan opsi Putuskan sambungan di IDE Anda, menutup terminal SSH Anda, atau menjalankan exit perintah di terminal.
Bagaimana cara menghentikan cluster dan menghindari tagihan saat saya tidak bekerja?
Untuk segera berhenti, hentikan kluster dari UI ruang kerja. Navigasi ke Komputasi di UI ruang kerja Databricks, temukan kluster Anda, dan klik Hentikan atau Hentikan.
Tetapkan kebijakan penghentian otomatis singkat pada kluster Anda dari antarmuka pengguna ruang kerja. Setelah Anda memutuskan sambungan, server SSH menunggu periode waktu tertentu shutdown-delay (bawaan: 10 menit), kemudian batas waktu tidak aktif kluster berlaku.
Bagaimana cara menangani dependensi persisten?
Dependensi yang diinstal selama sesi hilang setelah mulai ulang kluster. Gunakan penyimpanan persisten (/Workspace/Users/<your-username>) untuk persyaratan dan skrip penyiapan. Gunakan pustaka kluster atau skrip init untuk otomatisasi.
Metode autentikasi apa yang didukung?
Autentikasi menggunakan Databricks CLI dan file profil Anda ~/.databrickscfg . Kunci SSH ditangani oleh Pengembangan Jarak Jauh Databrick.
Bisakah saya menyambungkan ke database atau layanan eksternal dari kluster?
Ya, selama jaringan klaster Anda memungkinkan koneksi keluar dan Anda memiliki pustaka yang diperlukan.
Dapatkah saya menggunakan ekstensi IDE tambahan?
Sebagian besar ekstensi berfungsi saat diinstal dalam sesi SSH jarak jauh Anda, tergantung pada IDE dan kluster Anda. Visual Studio Code secara default tidak menginstal ekstensi lokal pada host jarak jauh. Anda dapat menginstalnya secara manual dengan membuka panel ekstensi dan mengaktifkan ekstensi lokal Anda di host jarak jauh. Anda juga dapat mengonfigurasi Visual Studio Code untuk selalu menginstal ekstensi tertentu dari jarak jauh. Lihat Menyambungkan ke Databricks.
Apakah Pengembangan Jarak Jauh mendukung Private Link?
Ya, namun admin ruang kerja harus mengizinkan URL VS Code dan marketplace ekstensi Cursor. Komputer lokal pengguna juga harus memiliki kemampuan untuk mengakses internet.