SSH tüneli kullanarak Databricks'e bağlanma

Önemli

Bu özellik Beta sürümündedir.

Databricks tarafından sağlanan SSH tüneli, çalışma alanınıza erişmenize ve SSH tüneli kullanarak IDE'lerden Databricks işlemindeki iş yüklerini etkileşimli olarak çalıştırmanıza olanak tanır. Kurulumu kolaydır, ortam yönetimi gereksinimini ortadan kaldırır ve databricks çalışma alanınızda tüm kodu ve verileri güvenli tutar.

Gereksinimler

SSH tünelini kullanarak Databricks sunucusuz veya klasik işlemlere bağlanmak için şunlara sahip olmanız gerekir:

  • Databricks CLI sürüm 1.5.0 veya üzeri yerel makinenizde yüklü ve kimlik doğrulaması yapılandırılmış. Bkz. Databricks CLI'yı yükleme veya güncelleştirme.
  • Aşağıdakilerden biri:
    • Visual Studio Code sürümü: 1.110.0 (Evrensel) veya üzeri ve Uzak - SSH uzantısı (1.0.46+) yüklü.
    • İmleç Sürümü: 2.6.11 (Evrensel) veya üzeri.

Sunucusuz GPU hesaplamasına bağlanmak için AI Çalışma Zamanı özelliğinin etkinleştirilmesi gerekir. Bkz. AI Runtime.

Klasik (ayrılmış, tek kullanıcılı) işlemlere bağlanmak için:

Sunucusuz hesaplama ile bağlantı kurma

Sunucusuz işlemle bağlantı kurmak için komutunu IDE'nizin içindeki bir terminalden çalıştırın databricks ssh connect . Ayrı bir kurulum adımı gerekmez.

databricks ssh connect komutu hakkında daha fazla bilgi için ssh komut grubuna bakın.

databricks ssh connect

--accelerator AI Çalışma Zamanı'na bağlanmak için seçeneğini kullanın:

databricks ssh connect --accelerator=GPU_1xA10

databricks ssh connect size tek bir düğümde etkileşimli bir oturum sağlar. Uzun süreli eğitim işleri veya çok düğümlü dağıtık eğitim için iş yükünü bunun yerine air CLI aracılığıyla gönderin. Bkz. AI Runtime CLI.

Bağlandıktan sonra geliştirme ortamınızı ayarlamayı tamamlayın. Bkz. Projeleri açma.

Sunucusuz işlem altyapısına bağlanmak ve oturumu Visual Studio Code veya Cursor'da başlatmak için --ide seçeneğini kullanın. CLI, ana çalışma alanı klasörünü işaret eden bir IDE penceresi açar.

databricks ssh connect --ide=vscode

Klasik bilgi işleme bağlanın

Klasik işlemle bağlantı kurmak için önce SSH bağlantısını ayarlayın, ardından IDE'nizi kullanarak veya terminalden bağlanın.

SSH bağlantısını ayarlama

Uyarı

SSH bağlantısının ayarlanması yalnızca klasik işlemlere bağlanıyorsanız gereklidir.

İlk olarak , databricks ssh kurulum komutunu kullanarak SSH tünelini ayarlayın. Bağlantı için bir ad sağlayın, örneğin şununla <connection-name>değiştirinmy-connection:

databricks ssh setup --name <connection-name>

CLI sizden bir küme seçmenizi ister. Doğrudan --cluster <cluster-id> ile de belirtebilirsiniz:

databricks ssh setup --name <connection-name> --cluster <cluster-id>

Uyarı

Databricks, IntelliJ kullanıcıları için kurulum komutuna --auto-start-cluster=false eklemenizi ve bağlanmadan önce kümeyi manuel olarak başlatmanızı önerir. Bunun nedeni JetBrains IDE'lerinin tüm yapılandırılmış kümeleri başlatması ve bu da beklenmeyen işlem ücretlerine neden olabilir.

Visual Studio Code veya İmleç kullanarak bağlanma

  1. Visual Studio Code için Uzak SSH uzantısını yükleyin. İmleç varsayılan olarak bir uzaktan SSH uzantısı içerir.

  2. IDE ana menüsündeKomut Paletini> tıklayın. Uzak-SSH: Ayarlar'ı seçin. Alternatif olarak, Tercihler: Kullanıcı Ayarları'nı (JSON) açın seçeneğini seçerek doğrudan settings.json değiştirebilirsiniz.

  3. Remote.SSH: Varsayılan Uzantılar (veya remote.SSH.defaultExtensions içinde settings.json), ms-Python.Python ve ms-toolsai.jupyter ekleyin.

    Eğer settings.json değiştiriyorsanız:

    "remote.SSH.defaultExtensions": [
        "ms-Python.Python",
        "ms-toolsai.jupyter"
    ]
    

    Uyarı

    İsteğe bağlı olarak, zaman aşımı hatalarının olasılığını daha da azaltmak için Remote.SSH: Connect Timeout (veya remote.SSH.connectTimeout içinde settings.json) değerini artırın. Varsayılan zaman aşımı 360'tır.

  4. Komut Paleti'nde Uzak SSH: Konağa Bağlan'ı seçin.

  5. Açılan menüden, ilk adımda ayarladığınız bağlantıyı seçin. IDE yeni bir pencerede bağlanmaya devam eder.

IntelliJ IDE'lerini kullanarak bağlanma

  1. Ayarlamak için Uzak sunucu kılavuzunu izleyin.
  2. Yeni bağlantı ekranında şunu girin:
    • Kullanıcı adı: root
    • Konak: <connection-name>

Terminal kullanarak bağlanma

ssh <connection-name>

Projeleri açma

Varsayılan olarak, databricks ssh connect komut kısa ömürlü bir dizine açılır. Çalışma alanı dosyalarına erişmek için IDE veya terminalden çalışma alanı dizininize gidin:

  • Visual Studio Code veya Cursor’da, Komut Paleti’nden (Cmd/Ctrl+Shift+P) Klasör Aç seçeneğini seçin ve /Workspace/Users/<your-username> konumuna gidin.
  • Terminal penceresinde dizininizi değiştirin: cd /Workspace/Users/<your-username>.

Uyarı

/Workspace, /Volumes ve /dbfs içindeki dosyalar, kümede yeniden başlatmalar sırasında kalıcı olur. , /homeve diğer yerel yollardaki /rootdosyalar kısa ömürlü olur ve yeniden başlatmada kaybolur.

Kodu çalıştır (Visual Studio Code veya Cursor)

SSH tüneli kullanarak kod çalıştırmak için Databricks sanal ortamının ayarlanması gerekir. Bu ortam, tüm yerleşik DBR kitaplıklarını ve hesaplama kapsamındaki kitaplıkları içerir.

  1. Komut Paleti'ni (Cmd/Ctrl+Shift+P) açın ve Python: Yorumlayıcı'yı seçin.

  2. Listeden pythonEnv-xxx sanal ortamı seçin. bayrağını kullanarak --base-environment Python bağımlılıkları ayarlarsanız, seçenekler listesinden daha uzun sanal ortam adını seçin. Sanal ortam görünmüyorsa:

    1. IDE içindeki bir terminalden çalıştırın echo $DATABRICKS_VIRTUAL_ENV .

      Örnek çıkış: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Çıktının tamamını, Python: Select Interpreter isteminde yorumlayıcı yolu olarak yapıştırın.

  3. Yeni bir terminal açtığınızda sanal ortam otomatik olarak etkinleştirilmelidir.

  4. Jupyter not defterini çalıştırmak için sanal ortamın çekirdek olarak seçildiğinden emin olun. Not defterinin sağ üst kısmındaki Çekirdek Seç'e tıklayın.

Standart Python ve .ipynb Jupyter uzantılarını kullanarak Python dosyaları ve not defterlerini çalıştırın ve hatalarını ayıklayın.

Spark'ı sunucusuz işlemdeki bir Python dosyasında kullanmak için oturumu açıkça başlatın:

from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()

Bağımlılıkları yönetme

İşlem türünüz ve gereksinimlerinize bağlı olarak çalışma alanı temel ortamını, küme kitaplıklarını, başlatma betiklerini veya not defterlerini kullanarak bağımlılıkları yönetin.

Çalışma alanı temel ortamları (sunucusuz ve AI Çalışma Zamanı için önerilir)

Uyarı

Bu özellik , İşler önizlemesinde Sunucusuz çalışma alanı temel ortamı desteğinin etkinleştirilmesini gerektirir. Bkz. Azure Databricks önizlemelerini yönetme.

Python bağımlılıklarını önceden yapılandırmak için sunucusuz ortam sürüm 4 veya altındaki çalışma alanı temel ortamını kullanın. Çalışma alanı kullanıcı arabirimini veya Databricks CLI databricks ortamlarını create-workspace-base-environment komutunu kullanarak bir temel ortam oluşturun.

Bağlanırken seçeneğini --base-environment kullanarak ortamı belirtin:

databricks ssh connect --base-environment my-workspace-env

Kabul edilen biçimler hakkında daha fazla bilgi için bkz. databricks ssh connect.

Küme kitaplıkları (klasik işlem için önerilir)

İşlem > Kitaplıkları altındaki çalışma alanı kullanıcı arabirimini kullanarak bağımlılıkları yükleyin. Bunlar, kümenin yeniden başlatılması sırasında kalıcıdır ve pythonEnv-xxx içinde kullanılabilir. Bkz. Küme kitaplıkları.

Python olmayan bağımlılıklar

Python olmayan bağımlılıkları kalıcı hale getirmek için işlem başladığında paketleri yükleyen bir init betiği kullanın. İsteğe bağlı olarak, paketleri bir Unity Kataloğu biriminde depolayın ve init betiğinden bunlara başvurun. Bkz. Başlatma betikleri nedir?.

Projeye özel not defteri kurulumu

Proje kapsamlı bağımlılıklar için, her oturumun başında %pip install komutlar içeren bir not defteri açın:

# 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 komutları, Databricks'e özgü korumaları içerir ve bağımlılıkları Spark yürütücü düğümlerine aktarır. Bu, özel bağımlılıklarla kullanıcı tanımlı işlevleri (UDF) etkinleştirir.

Daha fazla örnek için bkz. Kitaplıkları komutlarla %pip yönetme.

Oturum 10 dakika içinde yeniden bağlanırsa not defterini yeniden çalıştırmanız gerekmez. Bu, SSH yapılandırmanızda kullanılarak -shutdown-delay yapılandırılabilir.

Uyarı

Aynı kümedeki birden çok SSH oturumu bir sanal ortamı paylaşır.

Git'i kullanma

Uyarı

Bu özellik, Git klasörleri önizlemesi için Git CLI desteğinin etkinleştirilmesini gerektirir. Bkz. Azure Databricks önizlemelerini yönetme.

SSH tünelindeki Git CLI'sini yeni oluşturulan Git klasörleri ve Databricks çalışma alanında yapılandırdığınız Git kimlik bilgileriyle kullanabilirsiniz. Bkz. Git CLI komutlarını kullanma.

CLI, kimlik bilgilerini otomatik olarak algılamak yerine sizden isterse Git sağlayıcınızı Databricks'e bağlamanız gerekir. Bkz. Git sağlayıcınızı Databricks'e bağlama.

Sınırlamalar

Databricks tarafından sağlanan SSH tüneli aşağıdaki sınırlamalara sahiptir:

  • Paylaşılan kümeler desteklenmez.
  • Visual Studio Code ve SSH tüneli için Databricks uzantısı henüz uyumlu değildir ve birlikte kullanılmamalıdır.
  • /Workspace, /Volumes ve /dbfs dışında düzenlenen dosyalar küme yeniden başlatıldığında kaybolur.
  • Küme başına en fazla 10 SSH bağlantısına izin verilir.
  • Etkin olmayan oturumlar 1 saat sonra sona erebilir.
  • SSH tüneli diğer uzak ortamlardan veya Docker kapsayıcılarından başlatılamaz.
  • Üç veya daha fazla Jupyter not defteri aynı anda açıldığında performans veya bağlantı sorunlarıyla karşılaşabilirsiniz. Bu sınırlama gelecekteki bir sürümde ele alınacaktır.

Databricks Not Defteri farklılıkları

SSH tüneli kullanılırken not defterlerinde bazı farklılıklar vardır:

  • Python dosyaları herhangi bir Databricks globali (örneğin spark veya dbutils) tanımlamaz. Bunları from databricks.sdk.runtime import spark ile açıkça içeri aktarmanız gerekir.
  • ipynb not defterleri için şu özellikler kullanılabilir:
    • Databricks genel ayarları: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql SQL hücrelerini çalıştırmak için sihirli komut

Python kaynağı "not defterleri" ile çalışmak için:

  • Öğesini arayın jupyter.interactiveWindow.cellMarker.codeRegex ve şu şekilde ayarlayın:

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Öğesini arayın jupyter.interactiveWindow.cellMarker.default ve şu şekilde ayarlayın:

    # COMMAND ----------
    

Sorun giderme

Bu bölüm, yaygın sorunları çözme hakkında bilgi içerir.

SSH bağlantısı başarısız oluyor veya zaman aşımına uğradı

  • Kümenin çalışma alanı kullanıcı arabiriminde çalıştığını doğrulayın.
  • Dizüstü bilgisayarınızda, ağınızda ve VPN'nizde giden bağlantı noktası 22'nin açık ve izin verilip verilmediğini denetleyin.
  • SSH zaman aşımını artırın. Bkz. Visual Studio Code veya İmleç kullanarak bağlanma.
  • Anahtar uyuşmazlığı hataları için ~/.databricks/ssh-tunnel-keys silin ve databricks ssh setup tekrar çalıştırın.
  • "Uzak konak belirlemesi değişti" hataları için, kümenizle ilgili dosya ve silme girdilerini denetleyin ~/.ssh/known_hosts .
  • SSH oturumları 1 saat sonra düşebilir ve tek bir kümeye 10'dan fazla SSH bağlantısı yapılamaz. Bkz. Sınırlamalar.

code komutu bulunamadı

ifadesini görürseniz Error: exec: "code": executable file not found in $PATHKomut Paleti'ni (Cmd/Ctrl+Shift+P) açın, Kabuk Komutu: PATH'de 'code' komutunu yükle'yi seçin ve IDE veya terminal oturumunuzu yeniden başlatın.

CLI kimlik doğrulaması hataları

  • Kullanarak databricks auth loginDatabricks CLI profilinizin geçerli olduğunu onaylayın.
  • CAN MANAGE Küme üzerinde izinlerinizin olduğunu onaylayın.

Kodum çalışmıyor

Küme yeniden başlatıldıktan sonra dosyalar kaybolur veya ortam sıfırlanır

  • /Workspace, /Volumes ve /dbfs bağlamalarındaki dosyalar, küme yeniden başlatmaları arasında kalıcılık gösterir. , /homeve diğer yerel yollardaki /rootdosyalar kısa ömürlü olur ve yeniden başlatmada kaybolur.
  • Kalıcı bağımlılıklar için küme kitaplığı yönetimini kullanın. Gerekirse init betiklerini kullanarak yeniden yüklemeleri otomatikleştirin. Bkz. Başlatma betikleri nedir?.

SSH kurulumu Windows (WSL) üzerinde başarısız oluyor

databricks ssh setup WSL içinde değil doğrudan Windows üzerinde çalıştırın. Windows Visual Studio Code örneği, WSL tarafında oluşturulan SSH yapılandırmalarını bulamıyor.

FAQ

SSH tünelinin Databricks Connect'ten farkı nedir?

Databricks Connect, Spark API'lerini kullanarak kod yazmanızı ve bunları yerel Spark oturumu yerine Databricks işlem üzerinde uzaktan çalıştırmanızı sağlar. Databricks Visual Studio Code uzantısı, Databricks'te kullanıcı kodunda yerleşik hata ayıklama sağlamak için Databricks Connect'i kullanır.

SSH tüneli, IDE'nizden çalışma alanına erişmenize olanak tanır ve tüm geliştirme ortamınızı işlem ortamınıza taşır( Python, çekirdek ve tüm yürütme işlemleri Databricks üzerinde çalışır ve işlem kaynaklarına tam erişim sağlar.

Kodum ve verilerim nasıl güvenli hale getirildi?

Tüm kodLar Databricks bulut VPC'nizde çalışır. Hiçbir veri veya kod güvenli ortamınızdan ayrılmaz. SSH trafiği tamamen şifrelenir.

Hangi IDE'ler desteklenir?

Visual Studio Code ve İmleç resmi olarak desteklenir. SSH özelliklerine sahip tüm IDE'ler uyumludur, ancak yalnızca VS Code ve İmleç test edilir.

Tüm Databricks not defteri özellikleri IDE'den kullanılabilir mi?

, display()ve dbutils gibi %sqlbazı özellikler sınırlamalar veya el ile kurulum ile kullanılabilir. Bkz. Databricks Not Defterleri farklılıkları.

SSH tünelini kullanarak bağlandığımda kümem otomatik olarak başlatılacak mı?

Evet, ancak kümenin başlatılması, bağlantı zaman aşımından daha uzun sürerse bağlantı girişimi başarısız olur. Bunu önlemek için, zaman aşımı hatalarının olasılığını daha da azaltmak amacıyla komut paletinden Remote.SSH: Bağlantı Zaman Aşımı değerini arttırın (veya remote.SSH.connectTimeout içinde settings.json).

Kümemin çalışıp çalışmadığını nasıl anlarım?

Databricks çalışma alanı kullanıcı arabiriminde İşlem'e gidin ve kümenin durumunu denetleyin. Kümede SSH bağlantısının çalışması için Çalışıyor gösterilmelidir.

SSH/IDE oturumumu nasıl kesebilirim?

IDE pencerenizi kapatarak, IDE'nizdeki Bağlantıyı Kes seçeneğini kullanarak, SSH terminalinizi kapatarak veya terminalde komutunu çalıştırarak oturumun exit bağlantısını kesebilirsiniz.

Çalışmadığım zamanlarda kümeyi nasıl durdururum ve ücretlerden nasıl kaçınebilirim?

Hemen durdurmak için çalışma alanı kullanıcı arabiriminden kümeyi sonlandırın. Databricks çalışma alanı kullanıcı arabiriminde İşlem'e gidin, kümenizi bulun ve Sonlandır veya Durdur'a tıklayın.

Çalışma alanı kullanıcı arabiriminden kümenizde kısa bir otomatik sonlandırma ilkesi ayarlayın. Bağlantıyı kestikten sonra SSH sunucusu süreyi bekler shutdown-delay (varsayılan: 10 dakika), ardından kümenin boşta kalma zaman aşımı uygulanır.

Kalıcı bağımlılıkları nasıl işlemem gerekir?

Bir oturum sırasında yüklenen bağımlılıklar küme yeniden başlatıldıktan sonra kaybolur. Gereksinimler ve kurulum betikleri için kalıcı depolama (/Workspace/Users/<your-username>) kullanın. Otomasyon için küme kitaplıklarını veya başlatma betiklerini kullanın.

Hangi kimlik doğrulama yöntemleri desteklenir?

Kimlik doğrulaması Databricks CLI'sini ve profil dosyanızı ~/.databrickscfg kullanır. SSH anahtarları SSH tüneli tarafından işlenir.

Kümeden dış veritabanlarına veya hizmetlere bağlanabilir miyim?

Evet, küme ağınız giden bağlantılara izin verdiği ve gerekli kitaplıklara sahip olduğunuz sürece.

Ek IDE uzantıları kullanabilir miyim?

Uzantıların çoğu, IDE'nize ve kümenize bağlı olarak uzak SSH oturumunuz içinde yüklendiğinde çalışır. Visual Studio Code varsayılan olarak uzak konaklara yerel uzantılar yüklemez. Uzantılar panelini açıp uzak konakta yerel uzantılarınızı etkinleştirerek bunları el ile yükleyebilirsiniz. Ayrıca Visual Studio Code'u her zaman belirli uzantıları uzaktan yükleyecek şekilde yapılandırabilirsiniz. Bkz . Databricks'e bağlanma.

Evet, ancak çalışma alanı yöneticilerinin Visual Studio Code ve İmleç uzantısı marketlerinin URL'lerine izin vermesi gerekir. Yerel makinenizin İnternet'e erişebilmesi de gerekir.