Share via


Scala용 Databricks 커넥트 설치

참고 항목

이 문서에서는 Databricks Runtime 13.3 LTS 이상에 대한 Databricks 커넥트 설명합니다.

이 문서에서는 Scala용 Databricks 커넥트 설치하는 방법을 설명합니다. Databricks 커넥트란?을 참조하세요. 이 문서의 Python 버전은 Python용 Databricks 커넥트 설치를 참조하세요.

요구 사항

  • 대상 Azure Databricks 작업 영역 및 클러스터는 Databricks 커넥트 대한 클러스터 구성 요구 사항을 충족해야 합니다.
  • 개발 머신에 설치된 JDK(Java Development Kit)입니다. Databricks는 사용하는 JDK 설치 버전이 Azure Databricks 클러스터의 JDK 버전과 일치하는 것을 권장합니다. 클러스터에서 JDK 버전을 찾으려면 클러스터에 대한 Databricks 런타임 릴리스 정보의 "시스템 환경" 섹션을 참조하세요. 예를 들어 JDK Zulu 8.70.0.23-CA-linux64 8에 해당합니다. Databricks 런타임 릴리스 정보 버전 및 호환성을 참조 하세요.
  • 개발 머신에 Scala가 설치되어 있습니다. Databricks는 사용하는 Scala 설치 버전이 Azure Databricks 클러스터의 Scala 버전과 일치하는 것을 권장합니다. 클러스터에서 Scala 버전을 찾으려면 클러스터에 대한 Databricks 런타임 릴리스 정보의 "시스템 환경" 섹션을 참조하세요. Databricks 런타임 릴리스 정보 버전 및 호환성을 참조 하세요.
  • 개발 머신의 Scala 빌드 도구(예: sbt.)

클라이언트 설정

Databricks 커넥트 대한 요구 사항을 충족한 후 다음 단계를 완료하여 Databricks 커넥트 클라이언트를 설정합니다.

1단계: Databricks 커넥트 클라이언트에 대한 참조 추가

  1. Scala 프로젝트의 빌드 파일(예: build.sbtsbtFor, pom.xml Maven 또는 build.gradle Gradle)에서 Databricks 커넥트 클라이언트에 다음 참조를 추가합니다.

    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'
    
  2. 클러스터의 Databricks 런타임 버전과 일치하는 Databricks 커넥트 라이브러리의 버전으로 바꿉 14.0.0 니다. Maven 중앙 리포지토리에서 Databricks 커넥트 라이브러리 버전 번호를 찾을 수 있습니다.

2단계: 연결 속성 구성

이 섹션에서는 Databricks 커넥트 원격 Azure Databricks 클러스터 간에 연결을 설정하도록 속성을 구성합니다. 이러한 속성에는 클러스터를 사용하여 Databricks 커넥트 인증하는 설정이 포함됩니다.

Databricks Runtime 13.3 LTS 이상용 Databricks 커넥트 Scala의 경우 Databricks 커넥트 Java용 Databricks SDK를 포함합니다. 이 SDK는 인증에 대한 통합되고 일관된 아키텍처 및 프로그래밍 방식인 Databricks 클라이언트 통합 인증 표준을 구현합니다. 이 방법을 사용하면 Azure Databricks를 사용하여 인증을 설정하고 자동화하는 것이 더 중앙 집중화되고 예측 가능합니다. 이를 통해 Azure Databricks 인증을 한 번 구성한 다음, 추가 인증 구성 변경 없이 여러 Azure Databricks 도구 및 SDK에서 해당 구성을 사용할 수 있습니다.

참고 항목

  • OAuth U2M(사용자-컴퓨터) 인증 은 Java 0.18.0 이상용 Databricks SDK에서 지원됩니다. OAuth U2M 인증을 사용하려면 코드 프로젝트의 설치된 Java용 Databricks SDK 버전을 0.18.0 이상으로 업데이트해야 할 수 있습니다. Java용 Databricks SDK 시작 참조

    OAuth U2M 인증의 경우 Scala 코드를 실행하기 전에 Databricks CLI를 사용하여 인증해야 합니다. 자습서를 참조하세요.

  • OAuth M2M(컴퓨터-컴퓨터) 인증 은 Java 0.17.0 이상용 Databricks SDK에서 지원됩니다. OAuth U2M 인증을 사용하려면 코드 프로젝트의 설치된 Java용 Databricks SDK 버전을 0.17.0 이상으로 업데이트해야 할 수 있습니다. Java용 Databricks SDK 시작 참조

  • Java용 Databricks SDK는 아직 Azure 관리 ID 인증구현하지 않았습니다.

  1. 다음 구성 속성을 수집합니다.

  2. 코드 내에서 연결을 구성합니다. Databricks 커넥트 구성 속성을 찾을 때까지 다음 순서대로 검색합니다. 찾으면 다시 기본 옵션을 통해 검색을 중지합니다. 각 옵션에 대한 세부 정보는 다음 표 다음에 표시됩니다.

    구성 속성 옵션 적용 대상:
    1. DatabricksSession 클래스의 remote() 메서드 Azure Databricks 개인용 액세스 토큰 인증만
    2. Azure Databricks 구성 프로필 모든 Azure Databricks 인증 유형
    3. SPARK_REMOTE 환경 변수 Azure Databricks 개인용 액세스 토큰 인증만
    4. DATABRICKS_CONFIG_PROFILE 환경 변수 모든 Azure Databricks 인증 유형
    5. 각 구성 속성에 대한 환경 변수 모든 Azure Databricks 인증 유형
    6. 명명된 Azure Databricks 구성 프로필 DEFAULT 모든 Azure Databricks 인증 유형
    1. DatabricksSession 클래스의 remote() 메서드

      Azure Databricks 개인용 액세스 토큰 인증만 적용되는 이 옵션의 경우 작업 영역 인스턴스 이름, Azure Databricks 개인용 액세스 토큰 및 클러스터의 ID를 지정합니다.

      다음과 같이 여러 가지 방법으로 클래스를 초기화 DatabricksSession 할 수 있습니다.

      • 에서 host, tokenclusterId 필드를 DatabricksSession.builder설정합니다.
      • Databricks SDK의 클래스를 Config 사용합니다.
      • 필드와 함께 Databricks 구성 프로필을 지정합니다 clusterId .

      Databricks는 코드에서 이러한 연결 속성을 직접 지정하지 않는 것이 좋습니다. 대신 Databricks는 이 섹션 전체에서 설명한 대로 환경 변수 또는 구성 파일을 통해 속성을 구성하는 것이 좋습니다. 다음 코드 예제에서는 사용자 또는 Azure KeyVault와 같은 다른 구성 저장소에서 필요한 속성을 가져오기 위해 제안된 retrieve* 함수의 일부 구현을 직접 제공한다고 가정합니다.

      이러한 각 방법에 대한 코드는 다음과 같습니다.

      // 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()
      
    2. Azure Databricks 구성 프로필

      이 옵션의 경우 사용하려는 지원되는 Databricks 인증 유형에 필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

      각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

      그런 다음 클래스를 통해 DatabricksConfig 이 구성 프로필의 이름을 설정합니다.

      다음과 같이 몇 가지 방법으로 지정할 cluster_id 수 있습니다.

      • 구성 프로필에 cluster_id 필드를 포함하고 구성 프로필의 이름을 지정하기만 하면 됩니다.
      • 필드와 함께 구성 프로필 이름을 지정합니다 clusterId .

      클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 필드 또는 clusterId 필드도 지정할 cluster_id 필요가 없습니다.

      이러한 각 방법에 대한 코드는 다음과 같습니다.

      // 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()
      
    3. SPARK_REMOTE 환경 변수

      Azure Databricks 개인용 액세스 토큰 인증만 적용되는 이 옵션의 경우 환경 변수를 다음 문자열로 설정하고 SPARK_REMOTE 자리 표시자를 적절한 값으로 바꿉니다.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      그런 다음, 다음과 같이 클래스를 DatabricksSession 초기화합니다.

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      환경 변수를 설정하려면 운영 체제 설명서를 참조하세요.

    4. DATABRICKS_CONFIG_PROFILE 환경 변수

      이 옵션의 경우 사용하려는 지원되는 Databricks 인증 유형에 필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

      클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 지정 cluster_id하지 않아도 됩니다.

      각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

      환경 변수를 DATABRICKS_CONFIG_PROFILE 이 구성 프로필의 이름으로 설정합니다. 그런 다음, 다음과 같이 클래스를 DatabricksSession 초기화합니다.

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      환경 변수를 설정하려면 운영 체제 설명서를 참조하세요.

    5. 각 구성 속성에 대한 환경 변수

      이 옵션의 DATABRICKS_CLUSTER_ID 경우 사용하려는 지원되는 Databricks 인증 유형 에 필요한 환경 변수 및 기타 환경 변수를 설정합니다.

      각 인증 유형에 필요한 환경 변수는 다음과 같습니다.

      그런 다음, 다음과 같이 클래스를 DatabricksSession 초기화합니다.

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      환경 변수를 설정하려면 운영 체제 설명서를 참조하세요.

    6. 명명된 Azure Databricks 구성 프로필 DEFAULT

      이 옵션의 경우 사용하려는 지원되는 Databricks 인증 유형에 필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

      클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 지정 cluster_id하지 않아도 됩니다.

      각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

      이 구성 프로필 DEFAULT의 이름을 지정합니다.

      그런 다음, 다음과 같이 클래스를 DatabricksSession 초기화합니다.

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()