다음을 통해 공유


Azure Databricks의 RStudio

널리 사용되는 R용 IDE(통합 개발 환경)인 RStudio를 사용하여 Azure Databricks 작업 영역 내의 Azure Databricks 컴퓨팅 리소스에 연결할 수 있습니다. RStudio Desktop을 사용하여 로컬 개발 컴퓨터에서 Azure Databricks 클러스터 또는 SQL 웨어하우스에 연결합니다. 웹 브라우저를 사용하여 Azure Databricks 작업 영역에 로그인한 다음 해당 작업 영역 내에 RStudio Server가 설치된 Azure Databricks 클러스터에 연결할 수도 있습니다.

RStudio 데스크톱을 사용하여 연결

RStudio Desktop을 사용하여 로컬 개발 컴퓨터에서 원격 Azure Databricks 클러스터 또는 SQL 웨어하우스에 연결합니다. 이 시나리오에서 연결하려면 ODBC 연결을 사용하고 이 섹션에서 설명하는 R용 ODBC 패키지 함수를 호출합니다.

참고 항목

Databricks Connect를 사용하지 않는 한 이 RStudio Desktop 시나리오에서는 SparkR 또는 sparklyr와 같은 패키지를 사용할 수 없습니다. RStudio Desktop을 사용하는 대신 웹 브라우저를 사용하여 Azure Databricks 작업 영역에 로그인한 다음 해당 작업 영역에 RStudio Server가 설치된 Azure Databricks 클러스터에 연결할 수 있습니다.

로컬 개발 컴퓨터에서 RStudio Desktop을 설정하려면:

  1. R 3.3.0 이상을 다운로드하여 설치합니다.
  2. RStudio Desktop을 다운로드하여 설치합니다.
  3. RStudio 데스크톱을 시작합니다.

(선택 사항) RStudio 프로젝트를 만들려면:

  1. RStudio 데스크톱을 시작합니다.
  2. 파일 > 새 프로젝트를 클릭합니다.
  3. 새 디렉터리 > 새 프로젝트를 선택합니다.
  4. 프로젝트의 새 디렉터리를 선택한 다음 프로젝트 만들기를 클릭합니다.

R 스크립트를 만들려면:

  1. 프로젝트가 열린 상태에서 파일 > 새 파일 > R 스크립트를 클릭합니다.
  2. 파일 > 다른 이름으로 저장을 클릭합니다.
  3. 파일 이름을 지정한 다음 저장을 클릭합니다.

R용 ODBC를 통해 원격 Azure Databricks 클러스터 또는 SQL 웨어하우스에 연결하려면:

  1. 원격 클러스터 또는 SQL 웨어하우스서버 호스트 이름, 포트HTTP 경로 값을 가져옵니다. 클러스터의 경우 이러한 값은 고급 옵션JDBC/ODBC 탭에 있습니다. SQL 웨어하우스의 경우 이러한 값은 연결 세부 정보 탭에 있습니다.

  2. Azure Databricks 개인용 액세스 토큰을 가져옵니다.

    참고 항목

    보안 모범 사례로, 자동화된 도구, 시스템, 스크립트 및 앱을 사용하여 인증하는 경우 Databricks는 작업 영역 사용자 대신 서비스 주체에 속한 개인용 액세스 토큰을 사용하는 것이 좋습니다. 서비스 주체에 대한 토큰을 만들려면 서비스 주체에 대한 토큰 관리를 참조하세요.

  3. 로컬 컴퓨터의 운영 체제에 따라 Windows, macOS 또는 Linux용 Databricks ODBC 드라이버를 설치하고 구성합니다.

  4. 로컬 컴퓨터의 운영 체제에 따라 Windows, macOS 또는 Linux용 원격 클러스터 또는 SQL 웨어하우스에 ODBC DSN(데이터 원본 이름)을 설정합니다.

  5. RStudio 콘솔(포커스를 콘솔로 이동 보기>)에서 CRAN에서 odbc 및 DBI 패키지를 설치합니다.

    require(devtools)
    
    install_version(
      package = "odbc",
      repos   = "http://cran.us.r-project.org"
    )
    
    install_version(
      package = "DBI",
      repos   = "http://cran.us.r-project.org"
    )
    
  6. R 스크립트(View > Move Focus to Source)로 돌아가 설치된 odbcDBI 패키지를 로드합니다.

    library(odbc)
    library(DBI)
    
  7. DBI 패키지의 dbConnect 함수의 ODBC 버전을 호출하여 odbc 패키지의 odbc 드라이버와 만든 ODBC DSN을 지정합니다(예: Databricks의 ODBC DSN).

    conn = dbConnect(
      drv = odbc(),
      dsn = "Databricks"
    )
    
  8. 예를 들어, DBI 패키지의 dbGetQuery 함수를 통해 SELECT 문과 같이 ODBC DSN을 통해 작업을 호출하여 default라는 스키마(데이터베이스)의 diamonds라는 테이블에서 연결 변수의 이름과 SELECT 문 자체를 지정합니다.

    print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
    

완전한 R 스크립트는 다음과 같습니다.

library(odbc)
library(DBI)

conn = dbConnect(
  drv = odbc(),
  dsn = "Databricks"
)

print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))

스크립트를 실행하려면 원본 보기에서 원본을 클릭합니다. 이전 R 스크립트의 결과는 다음과 같습니다.

  _c0 carat     cut color clarity depth table price    x    y    z
1   1  0.23   Ideal     E     SI2  61.5    55   326 3.95 3.98 2.43
2   2  0.21 Premium     E     SI1  59.8    61   326 3.89 3.84 2.31

Databricks 호스팅 RStudio 서버에 연결

Important

Databricks 호스팅 RStudio Server는 더 이상 사용되지 않으며 Databricks 런타임 버전 15.4 이하에서만 사용할 수 있습니다. 자세한 내용은 Hosted RStudio Server 사용 중단을 참조 하세요.

웹 브라우저를 사용하여 Azure Databricks 작업 영역에 로그인한 다음, 해당 작업 영역에 RStudio Server설치된 Azure Databricks 컴퓨팅에 연결합니다.

자세한 내용은 Databricks 호스팅 RStudio 서버에 연결을 참조 하세요.

서버 통합 아키텍처

Azure Databricks에서 RStudio Server를 사용하는 경우 RStudio Server 디먼은 Azure Databricks 클러스터의 드라이버 노드에서 실행됩니다. RStudio 웹 UI는 Azure Databricks 웹앱을 통해 프록시되므로 클러스터 네트워크 구성을 변경할 필요가 없습니다. 이 다이어그램은 RStudio 통합 구성 요소 아키텍처를 보여 줍니다.

Databricks 기반 RStudio의 아키텍처

Warning

Azure Databricks는 클러스터의 Spark 드라이버에 있는 포트 8787에서 RStudio 웹 서비스를 프록시합니다. 이 웹 프록시는 RStudio에서만 사용하기 위한 것입니다. 포트 8787에서 다른 웹 서비스를 시작하면 사용자가 잠재적인 보안 악용에 노출될 수 있습니다. Databricks와 Microsoft는 클러스터에 지원되지 않는 소프트웨어를 설치하여 발생하는 문제에 대해 책임을 지지 않습니다.

요구 사항

  • 클러스터는 다목적 클러스터여야 합니다.

  • 해당 클러스터에 대한 CAN ATTACH TO 권한이 있어야 합니다. 클러스터 관리자가 이 권한을 부여할 수 있습니다. 컴퓨팅 권한을 참조 하세요.

  • 클러스터에서 테이블 액세스 제어, 자동 종료 또는 자격 증명 통과를 사용하지 않도록 설정해야 합니다.

  • 클러스터에서 공유 액세스 모드사용하면 안 됩니다.

  • 클러스터는 Spark 구성 spark.databricks.pyspark.enableProcessIsolationtrue로 설정하면 안 됩니다.

  • Pro 버전을 사용하려면 RStudio Server 부동 Pro 라이선스가 있어야 합니다.

참고 항목

클러스터는 Unity 카탈로그를 지원하는 액세스 모드사용할 수 있지만 해당 클러스터의 RStudio Server를 사용하여 Unity 카탈로그의 데이터에 액세스할 수는 없습니다.

시작: RStudio 서버 OS 버전

RStudio Server Open Source Edition은 Machine Learning용 Databricks 런타임(Databricks Runtime ML)을 사용하는 Azure Databricks 클러스터에 미리 설치됩니다.

클러스터에서 RStudio Server OS Edition을 열려면 다음을 수행합니다.

  1. 클러스터의 세부 정보 페이지를 엽니다.

  2. 클러스터를 시작한 다음 앱 탭을 클릭합니다.

    클러스터 앱 탭

  3. 탭에서 RStudio 설정 단추를 클릭합니다. 이렇게 하면 일회성 암호가 생성됩니다. 표시 링크를 클릭하여 표시하고 암호를 복사합니다.

    RStudio 일회용 암호

  4. RStudio 열기 링크를 클릭하여 새 탭에서 UI를 엽니다. 로그인 양식에 사용자 이름과 암호를 입력하고 로그인합니다.

    RStudio 로그인 양식

  5. RStudio UI에서 SparkR 패키지를 가져오고 SparkR 세션을 설정하여 클러스터에서 Spark 작업을 시작할 수 있습니다.

    library(SparkR)
    
    sparkR.session()
    
    # Query the first two rows of a table named "diamonds" in a
    # schema (database) named "default" and display the query result.
    df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2")
    showDF(df)
    

    RStudio 오픈 소스 버전 세션

  6. sparklyr 패키지를 첨부하고 Spark 연결을 설정할 수도 있습니다.

    library(sparklyr)
    
    sc <- spark_connect(method = "databricks")
    
    # Query a table named "diamonds" and display the first two rows.
    df <- spark_read_table(sc = sc, name = "diamonds")
    print(x = df, n = 2)
    

    RStudio 오픈 소스 버전 sparklyr 연결

시작: RStudio Workbench

이 섹션에서는 Azure Databricks 클러스터에서 RStudio Workbench(이전의 RStudio Server Pro)를 설정하고 사용하는 방법을 보여 줍니다. 라이선스에 따라 RStudio Workbench에 RStudio Server Pro가 포함될 수 있습니다.

RStudio 라이선스 서버 설정

Azure Databricks에서 RStudio Workbench를 사용하려면 Pro 라이선스를 부동 라이선스로 변환해야 합니다. 도움이 필요하면 help@rstudio.com에 문의합니다. 라이선스가 변환되면 RStudio Workbench용 라이선스 서버를 설정해야 합니다.

라이선스 서버를 설정하려면:

  1. 클라우드 공급자 네트워크에서 소규모 인스턴스를 시작합니다. 라이선스 서버 디먼은 매우 가볍습니다.
  2. 인스턴스에 해당 버전의 RStudio License Server를 다운로드하여 설치하고 서비스를 시작합니다. 자세한 지침은 RStudio Workbench 관리 가이드를 참조하세요.
  3. 라이선스 서버 포트가 Azure Databricks 인스턴스에 열려 있는지 확인합니다.

RStudio Workbench 설치

Azure Databricks 클러스터에서 RStudio Workbench를 설정하려면 초기화 스크립트를 만들어 RStudio Workbench 이진 파일 패키지를 설치하고 라이선스 임대에 라이선스 서버를 사용하도록 구성해야 합니다.

참고 항목

RStudio Server Open Source Edition 패키지가 이미 포함된 Databricks Runtime 버전에 RStudio Workbench를 설치하려는 경우 설치를 성공하려면 먼저 해당 패키지를 제거해야 합니다.

다음은 홈 디렉터리에서 작업 영역 파일, Unity 카탈로그 볼륨 또는 개체 스토리지와 같은 위치에 init 스크립트로 저장할 수 있는 예제 .sh 파일입니다. 자세한 내용은 클러스터 범위 init 스크립트 사용을 참조 하세요. 또한 이 스크립트는 Azure Databricks와의 통합을 간소화하는 추가 인증 구성을 수행합니다.

Warning

DBFS의 클러스터 범위 init 스크립트는 수명이 종료됩니다. DBFS에 init 스크립트를 저장하는 것은 레거시 워크로드를 지원하기 위해 일부 작업 영역에 존재하며 권장되지 않습니다. DBFS에 저장된 모든 init 스크립트를 마이그레이션해야 합니다. 마이그레이션 지침은 DBFS에서 init 스크립트 마이그레이션을 참조 하세요.

#!/bin/bash

set -euxo pipefail

if [[ $DB_IS_DRIVER = "TRUE" ]]; then
  sudo apt-get update
  sudo dpkg --purge rstudio-server # in case open source version is installed.
  sudo apt-get install -y gdebi-core alien

  ## Installing RStudio Workbench
  cd /tmp

  # You can find new releases at https://rstudio.com/products/rstudio/download-commercial/debian-ubuntu/.
  wget https://download2.rstudio.org/server/bionic/amd64/rstudio-workbench-2022.02.1-461.pro1-amd64.deb -O rstudio-workbench.deb
  sudo gdebi -n rstudio-workbench.deb

  ## Configuring authentication
  sudo echo 'auth-proxy=1' >> /etc/rstudio/rserver.conf
  sudo echo 'auth-proxy-user-header-rewrite=^(.*)$ $1' >> /etc/rstudio/rserver.conf
  sudo echo 'auth-proxy-sign-in-url=<domain>/login.html' >> /etc/rstudio/rserver.conf
  sudo echo 'admin-enabled=1' >> /etc/rstudio/rserver.conf
  sudo echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/rstudio/rsession-profile

  # Enabling floating license
  sudo echo 'server-license-type=remote' >> /etc/rstudio/rserver.conf

  # Session configurations
  sudo echo 'session-rprofile-on-resume-default=1' >> /etc/rstudio/rsession.conf
  sudo echo 'allow-terminal-websockets=0' >> /etc/rstudio/rsession.conf

  sudo rstudio-server license-manager license-server <license-server-url>
  sudo rstudio-server restart || true
fi
  1. <domain>을 Azure Databricks URL로 바꾸고 <license-server-url>을 부동 라이선스 서버의 URL로 바꿉니다.
  2. .sh 파일을 작업 영역 파일, Unity 카탈로그 볼륨 또는 개체 스토리지와 같은 위치에 init 스크립트로 저장합니다. 자세한 내용은 클러스터 범위 init 스크립트 사용을 참조 하세요.
  3. 클러스터를 시작하기 전에 연결된 위치에서 이 .sh 파일을 init 스크립트로 추가합니다. 지침은 클러스터 범위 init 스크립트 사용을 참조 하세요.
  4. 클러스터를 시작합니다.

RStudio Server Pro 사용

  1. 클러스터의 세부 정보 페이지를 엽니다.

  2. 클러스터를 시작하고 앱 탭을 클릭합니다.

    클러스터 앱 탭

  3. 탭에서 RStudio 설정 단추를 클릭합니다.

    RStudio 일회용 암호

  4. 일회성 암호는 필요하지 않습니다. RStudio UI 열기 링크를 클릭하면 인증된 RStudio Pro 세션이 열립니다.

  5. RStudio UI에서 SparkR 패키지를 연결하고 SparkR 세션을 설정하여 클러스터에서 Spark 작업을 시작할 수 있습니다.

    library(SparkR)
    
    sparkR.session()
    
    # Query the first two rows of a table named "diamonds" in a
    # schema (database) named "default" and display the query result.
    df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2")
    showDF(df)
    

    RStudio Pro 세션

  6. sparklyr 패키지를 첨부하고 Spark 연결을 설정할 수도 있습니다.

    library(sparklyr)
    
    sc <- spark_connect(method = "databricks")
    
    # Query a table named "diamonds" and display the first two rows.
    df <- spark_read_table(sc = sc, name = "diamonds")
    print(x = df, n = 2)
    

    RStudio Pro sparklyr 연결

RStudio Server FAQ

RStudio Server Open Source Edition과 RStudio Workbench의 차이점은 무엇인가요?

RStudio Workbench는 Open Source 버전에서 사용할 수 없는 광범위한 엔터프라이즈 기능을 지원합니다. RStudio 웹 사이트에서 기능 비교를 볼 수 있습니다.

또한 RStudio Server Open Source Edition은 GNU AGPL(Affero General Public License)에 따라 배포되는 반면 Pro 버전은 AGPL 소프트웨어를 사용할 수 없는 조직을 위한 상용 라이선스와 함께 제공됩니다.

마지막으로 RStudio Workbench는 RStudio, PBC의 전문 및 엔터프라이즈 지원을 제공하지만 RStudio Server Open Source Edition은 지원하지 않습니다.

Azure Databricks에서 내 RStudio Workbench/RStudio Server Pro 라이선스를 사용할 수 있나요?

예, 이미 RStudio Server에 대한 Pro 또는 Enterprise 라이선스가 있는 경우 Azure Databricks에서 해당 라이선스를 사용할 수 있습니다. Azure Databricks에서 RStudio Workbench를 설정하는 방법을 알아보려면 시작: RStudio Workbench를 참조하세요.

RStudio Server는 어디에서 실행되나요? 추가 서비스/서버를 관리해야 하나요?

RStudio 통합 아키텍처의 다이어그램에서 볼 수 있듯이 RStudio Server 디먼은 Azure Databricks 클러스터의 드라이버(마스터) 노드에서 실행됩니다. RStudio Server Open Source Edition을 사용하면 추가 서버/서비스를 실행할 필요가 없습니다. 그러나 RStudio Workbench의 경우 RStudio License Server를 실행하는 별도의 인스턴스를 관리해야 합니다.

표준 클러스터에서 RStudio Server를 사용할 수 있습니까?

참고 항목

이 문서에서는 레거시 클러스터 UI에 대해 설명합니다. 클러스터 액세스 모드에 대한 용어 변경을 포함하여 새 클러스터 UI(미리 보기)에 대한 자세한 내용은 Compute 구성 참조를 참조하세요. 새 클러스터 유형과 레거시 클러스터 유형을 비교하려면 클러스터 UI 변경 내용 및 클러스터 액세스 모드를 참조하세요.

예, 가능합니다.

자동 종료가 있는 클러스터에서 RStudio Server를 사용할 수 있나요?

아니요, 자동 종료가 사용하도록 설정된 경우 RStudio를 사용할 수 없습니다. 자동 종료는 RStudio 세션 내에서 저장되지 않은 사용자 스크립트와 데이터를 제거할 수 있습니다. 이러한 의도하지 않은 데이터 손실 시나리오로부터 사용자를 보호하기 위해 RStudio는 기본적으로 이러한 클러스터에서 사용하지 않도록 설정됩니다.

클러스터 리소스가 사용되지 않을 때 정리가 필요한 고객의 경우 Databricks는 클러스터 API를 사용하여 일정에 따라 RStudio 클러스터를 정리하는 것이 좋습니다.

RStudio에서 작업을 지속하려면 어떻게 해야 하나요?

RStudio의 버전 제어 시스템을 사용하여 작업을 유지하는 것이 좋습니다. RStudio는 다양한 버전 제어 시스템을 지원하며 프로젝트를 체크인하고 관리할 수 있습니다. 다음 방법 중 하나를 통해 코드를 유지하지 않으면 작업 영역 관리자가 클러스터를 다시 시작하거나 종료하는 경우 작업이 손실될 위험이 있습니다.

한 가지 방법은 DBFS란?에 파일(코드 또는 데이터)을 저장하는 것입니다. 예를 들어 /dbfs/ 아래에 파일을 저장하면 클러스터가 종료되거나 다시 시작될 때 파일이 삭제되지 않습니다.

또 다른 방법은 R Notebook을 Rmarkdown으로 내보낸 다음 나중에 파일을 RStudio 인스턴스로 가져와서 로컬 파일 시스템에 저장하는 것입니다. RMarkdown을 사용하여 R Notebooks 공유 블로그에 단계가 자세히 설명되어 있습니다.

SparkR 세션을 시작하려면 어떻게 해야 하나요?

SparkR은 Databricks Runtime에 포함되어 있지만 RStudio에 로드해야 합니다. RStudio 내에서 다음 코드를 실행하여 SparkR 세션을 초기화합니다.

library(SparkR)

sparkR.session()

SparkR 패키지를 가져오는 중에 오류가 발생하면 .libPaths()를 실행하고 결과에 /home/ubuntu/databricks/spark/R/lib가 포함되어 있는지 확인합니다.

포함되어 있지 않으면 /usr/lib/R/etc/Rprofile.site의 내용을 확인합니다. 드라이버에서 /home/ubuntu/databricks/spark/R/lib/SparkR을 나열하여 SparkR 패키지가 설치되었는지 확인합니다.

sparklyr 세션을 시작하려면 어떻게 해야 하나요?

클러스터에 sparklyr 패키지를 설치해야 합니다. 다음 방법 중 하나를 사용하여 sparklyr 패키지를 설치합니다.

  • Azure Databricks 라이브러리
  • install.packages() 명령
  • RStudio 패키지 관리 UI
library(sparklyr)

sc <- spark_connect(method = “databricks”)

RStudio는 Azure Databricks R Notebooks와 어떻게 통합되나요?

버전 제어를 통해 Notebooks와 RStudio 간에 작업을 이동할 수 있습니다.

작업 디렉터리는 무엇인가요?

RStudio에서 프로젝트를 시작할 때 작업 디렉터리를 선택합니다. 기본적으로 이는 RStudio Server가 실행 중인 드라이버(마스터) 컨테이너의 홈 디렉터리입니다. 원하는 경우 이 디렉터리를 변경할 수 있습니다.

Azure Databricks에서 실행되는 RStudio에서 Shiny Apps를 시작할 수 있나요?

예, Databricks의 RStudio Server 내에서 Shiny 애플리케이션을 개발하고 볼 수 있습니다.

Azure Databricks의 RStudio 내에서 터미널 또는 git을 사용할 수 없습니다. 어떻게 해결할 수 있나요?

웹 소켓을 사용하지 않도록 설정했는지 확인합니다. RStudio Server Open Source Edition에서는 UI에서 이 작업을 수행할 수 있습니다.

RStudio 세션

RStudio Server Pro에서 allow-terminal-websockets=0/etc/rstudio/rsession.conf에 추가하여 모든 사용자에 대해 웹 소켓을 사용하지 않도록 설정할 수 있습니다.

클러스터 세부 정보 아래에 앱 탭이 표시되지 않습니다.

이 기능은 모든 고객이 사용할 수 있는 것은 아닙니다. 프리미엄 플랜있어야 합니다.