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
Fitur ini ada di Beta.
Terowongan SSH yang disediakan oleh 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 terowongan SSH untuk menyambungkan ke komputasi tanpa server atau klasik Databricks, Anda harus memiliki:
- Databricks CLI versi 1.5.0 atau yang lebih baru diinstal pada komputer lokal Anda dan autentikasi dikonfigurasi. Lihat Menginstal atau memperbarui Databricks CLI.
- Salah satu hal berikut ini:
- versi Visual Studio Code: 1.110.0 (Universal) atau lebih tinggi dan ekstensi Remote - SSH (1.0.46+) terinstal.
- Versi Kursor: 2.6.11 (Universal) atau lebih tinggi.
Untuk menyambungkan ke komputasi GPU tanpa server, fitur Runtime AI harus diaktifkan. Lihat Runtime AI.
Untuk terhubung ke komputasi klasik (khusus, pengguna tunggal):
- Komputasi harus menjalankan Databricks Runtime 17.0 atau lebih tinggi. Lihat Gambaran umum komputasi khusus.
- Katalog Unity harus diaktifkan.
- Jika ada kebijakan komputasi, kebijakan tersebut tidak boleh melarang eksekusi pekerjaan.
- Saat menggunakan Databricks Container Services untuk komputasi khusus, image Docker Anda harus menginstal
openssh-server.
Menyambungkan ke komputasi tanpa server
Untuk menyambungkan ke komputasi tanpa server, jalankan databricks ssh connect perintah dari terminal dalam IDE Anda. Tidak diperlukan langkah penyiapan terpisah.
Untuk informasi selengkapnya tentang perintah databricks ssh connect, lihat ssh kelompok perintah.
databricks ssh connect
--accelerator Gunakan opsi untuk menyambungkan ke Runtime AI:
databricks ssh connect --accelerator=GPU_1xA10
databricks ssh connect memberi Anda sesi interaktif pada satu simpul. Untuk pekerjaan pelatihan yang berjalan lama atau pelatihan terdistribusi multi-node, kirimkan workload dengan CLI air sebagai gantinya. Lihat AI Runtime CLI.
Setelah menyambungkan, selesaikan menyiapkan lingkungan pengembangan Anda. Lihat proyek terbuka.
Untuk menyambungkan ke komputasi tanpa server dan memulai sesi di Visual Studio Code atau Kursor, gunakan opsi .--ide CLI membuka jendela IDE yang menunjuk ke folder ruang kerja rumah.
databricks ssh connect --ide=vscode
Hubungkan ke komputasi klasik
Untuk menyambungkan ke komputasi klasik, pertama-tama siapkan koneksi SSH, lalu sambungkan menggunakan IDE Anda atau dari terminal.
Menyiapkan koneksi SSH
Nota
Menyiapkan koneksi SSH hanya diperlukan jika Anda tersambung ke komputasi klasik.
Pertama, siapkan terowongan SSH menggunakan perintah databricks ssh konfigurasi. Berikan nama untuk koneksi, misalnya ganti <connection-name> dengan 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.
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 drop-down, 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
Secara bawaan, perintah databricks ssh connect akan terbuka di direktori sementara. Untuk mengakses file ruang kerja, navigasikan ke direktori ruang kerja Anda dari IDE atau terminal:
- Di Visual Studio Code atau Kursor, dari Palet Perintah (Cmd/Ctrl+Shift+P) pilih Buka Folder dan navigasi ke
/Workspace/Users/<your-username>. - Dari jendela terminal, ubah direktori Anda:
cd /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 terowongan SSH, lingkungan virtual Databricks harus disiapkan. Lingkungan ini mencakup semua pustaka DBR bawaan dan pustaka cakupan komputasi.
Buka Palet Perintah (Cmd/Ctrl+Shift+P) dan pilih Python: Pilih Interpreter.
Pilih
pythonEnv-xxxlingkungan virtual dari daftar. Jika Anda menyiapkan dependensi Python dengan flag--base-environment, pilih nama lingkungan virtual yang lebih panjang dari daftar opsi yang tersedia. Jika lingkungan virtual tidak muncul:Jalankan
echo $DATABRICKS_VIRTUAL_ENVdari terminal dalam IDE.Contoh output:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonTempelkan output lengkap sebagai jalur penerjemah di Python: Pilih prompt Interpreter.
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.
Jalankan dan men-debug berkas Python dan notebook .ipynb menggunakan ekstensi Python dan Jupyter standar.
Untuk menggunakan Spark dalam file Python pada komputasi tanpa server, inisialisasi sesi secara eksplisit:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()
Mengelola dependensi
Kelola dependensi menggunakan lingkungan dasar ruang kerja, pustaka kluster, skrip init, atau notebook, tergantung pada jenis dan persyaratan komputasi Anda.
Lingkungan dasar ruang kerja (direkomendasikan untuk serverless dan AI Runtime)
Nota
Fitur ini mengharuskan dukungan lingkungan dasar ruang kerja Tanpa Server dalam pratinjau Pekerjaan diaktifkan. Lihat Kelola Pratinjau Azure Databricks.
Gunakan lingkungan dasar ruang kerja dengan lingkungan tanpa server versi 4 atau di bawah ini untuk mengonfigurasi dependensi Python sebelumnya. Buat lingkungan dasar menggunakan UI workspace atau perintah databricks environments create-workspace-base-environment.
Tentukan lingkungan menggunakan --base-environment opsi saat menyambungkan:
databricks ssh connect --base-environment my-workspace-env
Untuk informasi selengkapnya tentang format yang diterima, lihat databricks ssh connect.
Pustaka kluster (direkomendasikan untuk komputasi klasik)
Instal dependensi menggunakan UI ruang kerja di bawah Pustaka Komputasi>. Ini bertahan selama seluruh proses memulai ulang kluster dan tersedia di pythonEnv-xxx. Lihat Pustaka kluster.
Ketergantungan non-Python
Untuk mempertahankan dependensi non-Python, gunakan skrip init yang menginstal paket saat komputasi dimulai. Secara opsional, simpan paket dalam volume Katalog Unity dan referensikan dari skrip init. Lihat Apa itu skrip init?.
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.
Menggunakan Git
Nota
Fitur ini mengharuskan dukungan Git CLI untuk pratinjau folder Git diaktifkan. Lihat Kelola Pratinjau Azure Databricks.
Anda dapat menggunakan Git CLI di terowongan SSH dengan folder Git yang baru dibuat dan kredensial Git yang telah Anda konfigurasi di ruang kerja Databricks. Lihat Menggunakan perintah Git CLI.
Jika CLI meminta kredensial alih-alih mengambilnya secara otomatis, Anda harus menghubungkan penyedia Git Anda ke Databricks. Lihat Menyambungkan penyedia Git Anda ke Databricks.
Keterbatasan
Terowongan SSH yang disediakan oleh Databricks memiliki batasan berikut:
- Kluster bersama tidak didukung.
- Ekstensi Databricks untuk Visual Studio Code dan terowongan SSH 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 yang tidak aktif dapat terputus setelah 1 jam.
- Terowongan SSH tidak dapat diluncurkan dari lingkungan jarak jauh atau kontainer Docker lainnya.
- Anda mungkin mengalami masalah performa atau koneksi saat tiga atau beberapa notebook Jupyter terbuka secara bersamaan. Batasan ini akan ditangani dalam rilis mendatang.
Perbedaan Notebook Databricks
Ada beberapa perbedaan dalam notebook saat menggunakan terowongan SSH:
- 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 mungkin turun setelah 1 jam dan tidak lebih dari 10 koneksi SSH dapat dilakukan ke satu kluster. Lihat Batasan.
Perintah code tidak ditemukan
Jika Anda melihat Error: exec: "code": executable file not found in $PATH, buka Palet Perintah (Cmd/Ctrl+Shift+P), pilih Perintah Shell: Instal perintah 'kode' di PATH, dan mulai ulang SESI IDE atau terminal Anda.
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 Visual Studio Code tidak dapat menemukan konfigurasi SSH yang dibuat di sisi WSL.
FAQ
Apa perbedaan terowongan SSH dengan 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.
Terowongan SSH memungkinkan Anda mengakses ruang kerja dari IDE Anda dan memindahkan seluruh lingkungan pengembangan Anda ke komputasi — Python, kernel, dan semua eksekusi berjalan di Databricks dengan akses penuh ke sumber daya komputasi.
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 terowongan SSH.
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 terowongan SSH mendukung Private Link?
Ya, namun admin ruang kerja harus memasukkan URL Visual Studio Code dan marketplace ekstensi Cursor ke daftar yang diizinkan. Komputer lokal Anda juga harus memiliki kemampuan untuk mengakses internet.