Instalowanie programu Databricks Connect dla języka Scala
Uwaga
W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.
W tym artykule opisano sposób instalowania programu Databricks Connect dla języka Scala. Zobacz Co to jest usługa Databricks Connect?. Aby zapoznać się z wersją języka Python tego artykułu, zobacz Instalowanie programu Databricks Connect dla języka Python.
Wymagania
- Docelowy obszar roboczy i klaster usługi Azure Databricks muszą spełniać wymagania dotyczące konfiguracji klastra dla usługi Databricks Connect.
- Zestaw Java Development Kit (JDK) zainstalowany na komputerze deweloperskim. Usługa Databricks zaleca, aby wersja używanej instalacji zestawu JDK odpowiadała wersji zestawu JDK w klastrze usługi Azure Databricks. Aby znaleźć wersję zestawu JDK w klastrze, zapoznaj się z sekcją "Środowisko systemowe" informacji o wersji środowiska Databricks Runtime dla klastra. Na przykład
Zulu 8.70.0.23-CA-linux64
odpowiada zestawowi JDK 8. Zobacz Databricks Runtime release notes versions and compatibility (Wersje i zgodność środowiska Databricks Runtime). - Język Scala zainstalowany na komputerze deweloperskim. Usługa Databricks zaleca, aby wersja używanej instalacji języka Scala odpowiadała wersji języka Scala w klastrze usługi Azure Databricks. Aby znaleźć wersję języka Scala w klastrze, zapoznaj się z sekcją "Środowisko systemowe" informacji o wersji środowiska Databricks Runtime dla klastra. Zobacz Databricks Runtime release notes versions and compatibility (Wersje i zgodność środowiska Databricks Runtime).
- Narzędzie kompilacji Scala na maszynie deweloperów, takie jak
sbt
.
Konfigurowanie klienta
Po spełnieniu wymagań programu Databricks Connect wykonaj następujące kroki, aby skonfigurować klienta usługi Databricks Connect.
Krok 1. Dodawanie odwołania do klienta usługi Databricks Connect
W pliku kompilacji projektu Scala, takim jak
build.sbt
dla programu ,pom.xml
dla programu Maven lubbuild.gradle
narzędzia Gradle dodaj następujące odwołanie do klienta Databrickssbt
Connect:Sbt
libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
Gradle
implementation 'com.databricks.databricks-connect:14.0.0'
Zastąp
14.0.0
element wersją biblioteki Databricks Connect zgodną z wersją środowiska Databricks Runtime w klastrze. Numery wersji biblioteki usługi Databricks Connect można znaleźć w centralnym repozytorium Maven.
Krok 2. Konfigurowanie właściwości połączenia
W tej sekcji skonfigurujesz właściwości w celu nawiązania połączenia między usługą Databricks Connect i zdalnym klastrem usługi Azure Databricks. Te właściwości obejmują ustawienia służące do uwierzytelniania usługi Databricks Connect z klastrem.
W przypadku usługi Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego w przypadku języka Scala usługa Databricks Connect zawiera zestaw SDK usługi Databricks dla języka Java. Ten zestaw SDK implementuje ujednolicony standard uwierzytelniania klienta usługi Databricks, skonsolidowane i spójne podejście architektoniczne i programowe do uwierzytelniania. Takie podejście sprawia, że konfigurowanie i automatyzowanie uwierzytelniania za pomocą usługi Azure Databricks jest bardziej scentralizowane i przewidywalne. Umożliwia ona skonfigurowanie uwierzytelniania usługi Azure Databricks raz, a następnie użycie tej konfiguracji w wielu narzędziach i zestawach SDK usługi Azure Databricks bez dalszych zmian konfiguracji uwierzytelniania.
Uwaga
Uwierzytelnianie typu użytkownik-komputer (U2M) protokołu OAuth jest obsługiwane w zestawie SDK usługi Databricks dla języka Java 0.18.0 i nowszych. Może być konieczne zaktualizowanie zainstalowanej wersji zestawu SDK usługi Databricks dla języka Java do wersji 0.18.0 lub nowszej w celu użycia uwierzytelniania OAuth U2M. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Java.
W przypadku uwierzytelniania OAuth U2M należy użyć interfejsu wiersza polecenia usługi Databricks do uwierzytelnienia przed uruchomieniem kodu Języka Scala. Zobacz Samouczek.
Uwierzytelnianie maszyny do maszyny (M2M) protokołu OAuth jest obsługiwane w zestawie SDK usługi Databricks dla języka Java 0.17.0 i nowszych. Może być konieczne zaktualizowanie zainstalowanej wersji zestawu SDK usługi Databricks dla języka Java do wersji 0.17.0 lub nowszej w celu użycia uwierzytelniania OAuth U2M. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Java.
Zestaw SDK usługi Databricks dla języka Java nie zaimplementował jeszcze uwierzytelniania tożsamości zarządzanych platformy Azure.
Zbierz następujące właściwości konfiguracji.
- Nazwa wystąpienia obszaru roboczego usługi Azure Databricks. Jest to taka sama jak wartość Nazwa hosta serwera dla klastra. Zobacz Pobieranie szczegółów połączenia dla zasobu obliczeniowego usługi Azure Databricks.
- Identyfikator klastra. Identyfikator klastra można uzyskać z adresu URL. Zobacz Adres URL i identyfikator klastra.
- Wszelkie inne właściwości niezbędne do obsługi obsługiwanego typu uwierzytelniania usługi Databricks. Te właściwości zostały opisane w tej sekcji.
Skonfiguruj połączenie w kodzie. Usługa Databricks Connect wyszukuje właściwości konfiguracji w następującej kolejności do momentu ich znalezienia. Po znalezieniu ich przestanie przeszukiwać pozostałe opcje. Szczegóły każdej opcji zostaną wyświetlone po poniższej tabeli:
Opcja właściwości konfiguracji Dotyczy 1. DatabricksSession
Metoda klasyremote()
Uwierzytelnianie tylko osobistego tokenu dostępu w usłudze Azure Databricks 2. Profil konfiguracji usługi Azure Databricks Wszystkie typy uwierzytelniania usługi Azure Databricks 3. Zmienna SPARK_REMOTE
środowiskowaUwierzytelnianie tylko osobistego tokenu dostępu w usłudze Azure Databricks 4. Zmienna DATABRICKS_CONFIG_PROFILE
środowiskowaWszystkie typy uwierzytelniania usługi Azure Databricks 5. Zmienna środowiskowa dla każdej właściwości konfiguracji Wszystkie typy uwierzytelniania usługi Azure Databricks 6. Profil konfiguracji usługi Azure Databricks o nazwie DEFAULT
Wszystkie typy uwierzytelniania usługi Azure Databricks DatabricksSession
Metoda klasyremote()
W przypadku tej opcji, która ma zastosowanie tylko do uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks, określ nazwę wystąpienia obszaru roboczego, osobisty token dostępu usługi Azure Databricks oraz identyfikator klastra.
Klasę
DatabricksSession
można zainicjować na kilka sposobów w następujący sposób:host
Ustaw pola ,token
iclusterId
w plikuDatabricksSession.builder
.- Użyj klasy zestawu SDK
Config
usługi Databricks. - Określ profil konfiguracji usługi Databricks wraz z polem
clusterId
.
Usługa Databricks nie zaleca bezpośredniego określania tych właściwości połączenia w kodzie. Zamiast tego usługa Databricks zaleca konfigurowanie właściwości za pomocą zmiennych środowiskowych lub plików konfiguracji, zgodnie z opisem w tej sekcji. W poniższych przykładach kodu założono, że udostępniasz implementację proponowanych
retrieve*
funkcji samodzielnie, aby uzyskać niezbędne właściwości od użytkownika lub z innego magazynu konfiguracji, takiego jak Azure KeyVault.Kod dla każdego z tych podejść jest następujący:
// Set the host, token, and clusterId fields in DatabricksSession.builder. // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the // cluster's ID, you do not also need to set the clusterId field here. import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder() .host(retrieveWorkspaceInstanceName()) .token(retrieveToken()) .clusterId(retrieveClusterId()) .getOrCreate() // Use the Databricks SDK's Config class. // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the // cluster's ID, you do not also need to set the clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setHost(retrieveWorkspaceInstanceName()) .setToken(retrieveToken()) val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate() // Specify a Databricks configuration profile along with the clusterId field. // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the // cluster's ID, you do not also need to set the clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
Profil konfiguracji usługi Azure Databricks
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole
cluster_id
i inne pola, które są niezbędne dla obsługiwanego typu uwierzytelniania usługi Databricks, którego chcesz użyć.Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Następnie ustaw nazwę tego profilu konfiguracji za pomocą
DatabricksConfig
klasy .Możesz określić
cluster_id
na kilka sposobów w następujący sposób:- Uwzględnij
cluster_id
pole w profilu konfiguracji, a następnie po prostu określ nazwę profilu konfiguracji. - Określ nazwę profilu konfiguracji wraz z polem
clusterId
.
Jeśli zmienna
DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określaćcluster_id
pól lubclusterId
.Kod dla każdego z tych podejść jest następujący:
// Include the cluster_id field in your configuration profile, and then // just specify the configuration profile's name: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .getOrCreate() // Specify the configuration profile name along with the clusterId field. // In this example, retrieveClusterId() assumes some custom implementation that // you provide to get the cluster ID from the user or from some other // configuration store: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
Zmienna
SPARK_REMOTE
środowiskowaW przypadku tej opcji, która dotyczy tylko uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks, ustaw
SPARK_REMOTE
zmienną środowiskową na następujący ciąg, zastępując symbole zastępcze odpowiednimi wartościami.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Następnie zainicjuj klasę
DatabricksSession
w następujący sposób:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.
Zmienna
DATABRICKS_CONFIG_PROFILE
środowiskowaW przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole
cluster_id
i inne pola, które są niezbędne dla obsługiwanego typu uwierzytelniania usługi Databricks, którego chcesz użyć.Jeśli zmienna
DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennejcluster_id
.Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Ustaw zmienną
DATABRICKS_CONFIG_PROFILE
środowiskową na nazwę tego profilu konfiguracji. Następnie zainicjuj klasęDatabricksSession
w następujący sposób:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
Zmienna środowiskowa dla każdej właściwości konfiguracji
W przypadku tej opcji ustaw zmienną
DATABRICKS_CLUSTER_ID
środowiskową i wszelkie inne zmienne środowiskowe, które są niezbędne dla obsługiwanego typu uwierzytelniania usługi Databricks, którego chcesz użyć.Wymagane zmienne środowiskowe dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
DATABRICKS_HOST
iDATABRICKS_TOKEN
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
iDATABRICKS_CLIENT_SECRET
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
DATABRICKS_HOST
. - W przypadku uwierzytelniania
DATABRICKS_HOST
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
i prawdopodobnieDATABRICKS_AZURE_RESOURCE_ID
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
DATABRICKS_HOST
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
i ewentualnieDATABRICKS_AZURE_RESOURCE_ID
.
Następnie zainicjuj klasę
DatabricksSession
w następujący sposób:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
Profil konfiguracji usługi Azure Databricks o nazwie
DEFAULT
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole
cluster_id
i inne pola, które są niezbędne dla obsługiwanego typu uwierzytelniania usługi Databricks, którego chcesz użyć.Jeśli zmienna
DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennejcluster_id
.Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku uwierzytelniania
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Nadaj nazwę temu profilowi
DEFAULT
konfiguracji .Następnie zainicjuj klasę
DatabricksSession
w następujący sposób:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks: