Program RStudio w usłudze Azure Databricks
Za pomocą programu RStudio, popularnego zintegrowanego środowiska projektowego (IDE) dla języka R, można połączyć się z zasobami obliczeniowymi usługi Azure Databricks w obszarach roboczych usługi Azure Databricks. Użyj programu RStudio Desktop, aby nawiązać połączenie z klastrem usługi Azure Databricks lub magazynem SQL z lokalnej maszyny dewelopera. Możesz również użyć przeglądarki internetowej, aby zalogować się do obszaru roboczego usługi Azure Databricks, a następnie połączyć się z klastrem usługi Azure Databricks z zainstalowanym programem RStudio Server w tym obszarze roboczym.
Nawiązywanie połączenia przy użyciu programu RStudio Desktop
Użyj programu RStudio Desktop , aby nawiązać połączenie ze zdalnym klastrem usługi Azure Databricks lub usługą SQL Warehouse z lokalnej maszyny deweloperów. Aby nawiązać połączenie w tym scenariuszu, użyj połączenia ODBC i wywołaj funkcje pakietu ODBC dla języka R, które opisano w tej sekcji.
Uwaga
Nie można używać pakietów, takich jak SparkR lub sparklyr w tym scenariuszu programu RStudio Desktop, chyba że używasz również usługi Databricks Connect. Alternatywą dla korzystania z programu RStudio Desktop jest zalogowanie się do obszaru roboczego usługi Azure Databricks za pomocą przeglądarki internetowej, a następnie nawiązanie połączenia z klastrem usługi Azure Databricks z zainstalowanym programem RStudio Server w tym obszarze roboczym.
Aby set aplikację RStudio Desktop na lokalnym komputerze deweloperskim:
- Pobierz i zainstaluj program R 3.3.0 lub nowszy.
- Pobierz i zainstaluj program RStudio Desktop.
- Uruchom program RStudio Desktop.
(Opcjonalnie) Aby utworzyć projekt programu RStudio:
- Uruchom program RStudio Desktop.
- Kliknij pozycję Plik > nowy projekt.
- Select nowy katalog > nowy projekt.
- Wybierz nowy katalog dla projektu, a następnie kliknij pozycję Utwórz projekt.
Aby utworzyć skrypt języka R:
- Po otwarciu projektu kliknij pozycję Plik > nowy plik > R Script.
- Kliknij pozycję Plik > Zapisz jako.
- Nadaj plikowi nazwę, a następnie kliknij przycisk Zapisz.
Aby nawiązać połączenie ze zdalnym klastrem usługi Azure Databricks lub usługą SQL Warehouse za pośrednictwem funkcji ODBC dla języka R:
nazwę hosta serwera, port i ścieżkę HTTP dla klastra zdalnego lub magazynu SQL . W przypadku klastra te values znajdują się na karcie JDBC/ODBC opcji zaawansowanych . W przypadku usługi SQL Warehouse te values znajdują się na karcie Szczegóły połączenia. osobisty token dostępuusługi Azure Databricks . Uwaga
Najlepszym rozwiązaniem w zakresie zabezpieczeń w przypadku uwierzytelniania za pomocą zautomatyzowanych narzędzi, systemów, skryptów i aplikacji usługa Databricks zaleca używanie osobistych tokenów dostępu należących do jednostek usługi zamiast użytkowników obszaru roboczego. Aby utworzyć tokeny dla jednostek usługi, zobacz Zarządzanie tokenami dla jednostki usługi.
Zainstaluj i skonfiguruj sterownik ODBC usługi Databricks dla systemu Windows, macOS lub Linux na podstawie systemu operacyjnego komputera lokalnego.
Set nazwę źródła danych ODBC (DSN) do klastra zdalnego lub magazynu SQL dla systemu Windows, macOSlub Linux, na podstawie systemu operacyjnego komputera lokalnego.
Z poziomu konsoli programu RStudio (Wyświetl > przenieś fokus do konsoli) zainstaluj pakiety odbc i DBI z poziomu sieci CRAN:
require(devtools) install_version( package = "odbc", repos = "http://cran.us.r-project.org" ) install_version( package = "DBI", repos = "http://cran.us.r-project.org" )
Wróć do skryptu języka R (Wyświetl > fokus przenoszenia do źródła), załaduj zainstalowane
odbc
pakiety iDBI
:library(odbc) library(DBI)
Wywołaj wersję ODBC funkcji dbConnect w
DBI
pakiecie, określającodbc
sterownik wodbc
pakiecie, a także nazwę DSN ODBC, która została utworzona, na przykład ODBC DSN .Databricks
conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Wywołaj operację za pośrednictwem nazwy DSN ODBC, na przykład instrukcji
SELECT
za pośrednictwem funkcji dbGetQuery w pakiecieDBI
, określając nazwę zmiennej połączenia i samą instrukcjęSELECT
, na przykład z table o nazwiediamonds
w schema (bazie danych) o nazwiedefault
:print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Kompletny skrypt języka R jest następujący:
library(odbc)
library(DBI)
conn = dbConnect(
drv = odbc(),
dsn = "Databricks"
)
print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Aby uruchomić skrypt, w widoku źródłowym kliknij pozycję Źródło. Wyniki poprzedniego skryptu języka R są następujące:
_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
Nawiązywanie połączenia z serwerem RStudio hostowanym w usłudze Databricks
Ważne
Serwer RStudio hostowany w usłudze Databricks jest przestarzały i jest dostępny tylko w środowisku Databricks Runtime w wersji 15.4 lub nowszej. Aby uzyskać więcej informacji, zobacz temat Wycofanie hostowanego serwera RStudio Server.
Użyj przeglądarki internetowej, aby zalogować się do obszaru roboczego usługi Azure Databricks, a następnie nawiązać połączenie z obliczeniami usługi Azure Databricks z zainstalowanym programem RStudio Server w tym obszarze roboczym.
Aby uzyskać więcej informacji, zobacz Connect to a Databricks-hosted RStudio Server (Nawiązywanie połączenia z serwerem RStudio hostowanym w usłudze Databricks)
Architektura integracji z programem RStudio
W przypadku korzystania z programu RStudio Server w usłudze Azure Databricks demon programu RStudio Server jest uruchamiany w węźle sterownika klastra usługi Azure Databricks. Internetowy interfejs użytkownika aplikacji RStudio jest proxied za pośrednictwem aplikacji internetowej usługi Azure Databricks, co oznacza, że nie trzeba wprowadzać żadnych zmian w konfiguracji sieci klastra. Na tym diagramie przedstawiono architekturę składnika integracji programu RStudio.
Ostrzeżenie
Usługa Azure Databricks proxy udostępnia usługę internetową RStudio z portu 8787 na sterowniku Spark klastra. Ten internetowy serwer proxy jest przeznaczony tylko do użytku z programem RStudio. Jeśli uruchamiasz inne usługi internetowe na porcie 8787, możesz uwidocznić użytkowników potencjalnym lukom w zabezpieczeniach. Ani usługa Databricks, ani firma Microsoft nie ponosi odpowiedzialności za żadne problemy wynikające z instalacji nieobsługiwanego oprogramowania w klastrze.
Wymagania
Klaster musi być klastrem ogólnego przeznaczenia.
Musisz mieć uprawnienie CAN ATTACH TO dla tego klastra. Administrator klastra może nadać to uprawnienie za pomocą funkcji grant. Zobacz Uprawnienia obliczeniowe.
klaster nie może mieć włączonej table kontroli dostępu, automatycznego zakończenialub przekazywania poświadczeń.
Klaster nie może używać trybu dostępu współdzielonego.
klastra nie może mieć konfiguracji Spark
spark.databricks.pyspark.enableProcessIsolation
set dotrue
.Aby korzystać z wersji Pro, musisz mieć licencję zmiennoprzecinkową programu RStudio Server Pro.
Uwaga
Mimo że klaster może używać trybu dostępu , który obsługuje Unity Catalog, nie można użyć programu RStudio Server z tego klastra do uzyskania dostępu do danych w Unity Catalog.
Get uruchomiono: RStudio Server OS Edition
Program RStudio Server Open Source Edition jest wstępnie zainstalowany w klastrach usługi Azure Databricks korzystających ze środowiska Databricks Runtime na potrzeby uczenia maszynowego (Databricks Runtime ML).
Aby otworzyć program RStudio Server OS Edition w klastrze, wykonaj następujące czynności:
Otwórz stronę szczegółów klastra.
Uruchom klaster, a następnie kliknij kartę Aplikacje :
Na karcie Apps kliknij przycisk Set up RStudio. Spowoduje to wygenerowanie jednorazowego hasła. Kliknij link pokaż, aby go wyświetlić i skopiować hasło.
Kliknij link Otwórz aplikację RStudio , aby otworzyć interfejs użytkownika na nowej karcie. Wprowadź nazwę użytkownika i hasło w formularzu logowania i zaloguj się.
Z poziomu interfejsu użytkownika programu RStudio można zaimportować pakiet
SparkR
i set sesjęSparkR
, aby uruchomić zadania platformy Spark w klastrze.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)
Możesz również dołączyć pakiet sparklyr i nawiązać set połączenie platformy 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)
Get rozpoczęte: RStudio Workbench
W tej sekcji pokazano, jak set się i rozpocząć korzystanie z aplikacji RStudio Workbench (dawniej RStudio Server Pro) w klastrze usługi Azure Databricks. W zależności od licencji program RStudio Workbench może zawierać program RStudio Server Pro.
Set uruchomienie serwera licencji programu RStudio
Aby użyć aplikacji RStudio Workbench w usłudze Azure Databricks, musisz przekonwertować licencję Pro na zmienną licencję. Aby uzyskać pomoc, skontaktuj się z .help@rstudio.com Po przekonwertowaniu licencji należy setserwera licencji dla aplikacji RStudio Workbench.
Aby skonfigurować serwer licencji set:
- Uruchom małe wystąpienie w sieci dostawcy usług w chmurze; demon serwera licencji jest bardzo lekki.
- Pobierz i zainstaluj odpowiednią wersję programu RStudio License Server w wystąpieniu i uruchom usługę. Aby uzyskać szczegółowe instrukcje, zobacz RStudio Workbench Admin Guide (Przewodnik administratora aplikacji RStudio Workbench).
- Upewnij się, że port serwera licencji jest otwarty dla wystąpień usługi Azure Databricks.
Instalowanie aplikacji RStudio Workbench
Aby set aplikację RStudio Workbench w klastrze usługi Azure Databricks, należy utworzyć skrypt inicjowania, aby zainstalować pakiet binarny RStudio Workbench i skonfigurować go do używania serwera licencji na potrzeby dzierżawy licencji.
Uwaga
Jeśli planujesz zainstalować aplikację RStudio Workbench w wersji środowiska Databricks Runtime, która zawiera już pakiet RStudio Server Open Source Edition, należy najpierw odinstalować ten pakiet, aby instalacja zakończyła się pomyślnie.
Poniżej przedstawiono przykładowy plik .sh
, który można przechowywać jako skrypt init w lokalizacji, na przykład w katalogu domowym jako plik przestrzeni roboczej, w woluminie Unity Catalog lub w magazynie obiektowym. Aby uzyskać więcej informacji, zobacz Skrypty inicjowania o zakresie klastra. Skrypt wykonuje również dodatkowe konfiguracje uwierzytelniania, które usprawniają integrację z usługą Azure Databricks.
Ostrzeżenie
Skrypty inicjowania w zakresie klastra w systemie plików DBFS są zakończone. Przechowywanie skryptów inicjowania w systemie plików DBFS istnieje w niektórych obszarach roboczych w celu obsługi starszych obciążeń i nie jest zalecane. Wszystkie skrypty inicjowania przechowywane w systemie plików DBFS powinny być migrowane. Aby uzyskać instrukcje dotyczące migracji, zobacz Migrowanie skryptów inicjowania z systemu plików DBFS.
#!/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
- Zastąp
<domain>
ciąg adresem URL usługi Azure Databricks i<license-server-url>
adresem URL pływającego serwera licencji. - Zapisz ten plik
.sh
jako skrypt inicjowania w lokalizacji, takiej jak w katalogu głównym jako plik przestrzeni roboczej, w woluminie Unity Catalog lub w magazynie obiektów. Aby uzyskać więcej informacji, zobacz Skrypty inicjowania o zakresie klastra. - Przed uruchomieniem klastra dodaj ten
.sh
plik jako skrypt inicjowania ze skojarzonej lokalizacji. Aby uzyskać instrukcje, zobacz Skrypty inicjowania o zakresie klastra. - Uruchom klaster.
Korzystanie z programu RStudio Server Pro
Otwórz stronę szczegółów klastra.
Uruchom klaster i kliknij kartę Aplikacje :
Na karcie Apps kliknij przycisk Set RStudio.
Nie potrzebujesz jednorazowego hasła. Kliknij link Open RStudio UI (Otwórz interfejs użytkownika programu RStudio) i spowoduje otwarcie uwierzytelnionej sesji programu RStudio Pro.
W interfejsie użytkownika programu RStudio możesz dołączyć pakiet
SparkR
i set sesjęSparkR
, aby uruchomić zadania platformy Spark w klastrze.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)
Możesz również dołączyć pakiet sparklyr i set połączenie platformy 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 Server — często zadawane pytania
Jaka jest różnica między programem RStudio Server Open Source Edition i aplikacją RStudio Workbench?
Aplikacja RStudio Workbench obsługuje szeroką gamę funkcji przedsiębiorstwa, które nie są dostępne w wersji Open Source. Porównanie funkcji można zobaczyć w witrynie internetowej programu RStudio.
Ponadto wersja RStudio Server Open Source Edition jest dystrybuowana w ramach licencji GNU Affero General Public License (AGPL), podczas gdy wersja Pro jest dostarczana z licencją komercyjną dla organizacji, które nie mogą korzystać z oprogramowania AGPL.
Na koniec program RStudio Workbench zapewnia profesjonalną i korporacyjną pomoc techniczną ze strony RStudio, PBC, podczas gdy program RStudio Server Open Source Edition nie obsługuje.
Czy mogę używać licencji RStudio Workbench/RStudio Server Pro w usłudze Azure Databricks?
Tak, jeśli masz już licencję Pro lub Enterprise dla programu RStudio Server, możesz użyć tej licencji w usłudze Azure Databricks. Zobacz Get started: RStudio Workbench, żeby nauczyć się, jak set RStudio Workbench w usłudze Azure Databricks.
Where czy program RStudio Server jest uruchomiony? Czy muszę zarządzać dodatkowymi usługami/serwerami?
Jak widać na diagramie w architekturze integracji programu RStudio, demon programu RStudio Server działa w węźle sterownika (master) klastra usługi Azure Databricks. W programie RStudio Server Open Source Edition nie trzeba uruchamiać żadnych dodatkowych serwerów/usług. Jednak w przypadku aplikacji RStudio Workbench należy zarządzać oddzielnym wystąpieniem z uruchomionym programem RStudio License Server.
Czy mogę używać programu RStudio Server w klastrze standardowym?
Uwaga
W tym artykule opisano starszy interfejs użytkownika klastrów. Aby uzyskać informacje na temat nowego interfejsu użytkownika klastrów (w wersji zapoznawczej), w tym zmian terminologii dla trybów dostępu klastra, zobacz Informacje o konfiguracji obliczeniowej. Aby zapoznać się z porównaniem nowych i starszych typów klastrów, zobacz Zmiany interfejsu użytkownika klastrów i tryby dostępu do klastra.
Tak, możesz.
Czy mogę używać programu RStudio Server w klastrze z automatycznym kończeniem?
Nie, nie można używać programu RStudio po włączeniu automatycznego kończenia. Automatyczne zakończenie może przeczyścić niezapisane skrypty użytkownika i dane w sesji programu RStudio. Aby chronić użytkowników przed tym niezamierzonym scenariuszem utraty danych, program RStudio jest domyślnie wyłączony w takich klastrach.
W przypadku klientów, którzy wymagają czyszczenia zasobów klastra, gdy nie są używane, usługa Databricks zaleca używanie interfejsów API klastra do czyszczenia klastrów RStudio na podstawie harmonogramu.
Jak zachować swoją pracę w programie RStudio?
Zdecydowanie zalecamy utrwalanie pracy przy użyciu systemu kontroli wersji z programu RStudio. Program RStudio ma doskonałą obsługę różnych systemów kontroli wersji i umożliwia ewidencjonowanie projektów i zarządzanie nimi. Jeśli kod nie zostanie utrwalone za pomocą jednej z poniższych metod, ryzyko utraty pracy w przypadku ponownego uruchomienia lub zakończenia działania klastra przez administratora obszaru roboczego.
Jedną z metod jest zapisanie plików (kodu lub danych) w systemie plików DBFS?. Jeśli na przykład zapiszesz plik w plikach /dbfs/
, nie zostanie usunięty po zakończeniu lub ponownym uruchomieniu klastra.
Inną metodą jest zapisanie notesu języka R w lokalnym systemie plików przez wyeksportowanie go jako Rmarkdown
, a następnie zaimportowanie pliku do wystąpienia programu RStudio.
Blog Sharing R Notebooks using RMarkdown (Udostępnianie notesów języka R przy użyciu języka RMarkdown) zawiera bardziej szczegółowe opisy kroków.
Jak mogę rozpocząć sesjęSparkR
?
SparkR
program jest zawarty w środowisku Databricks Runtime, ale należy go załadować do programu RStudio. Uruchom następujący kod w programie RStudio, aby zainicjować sesję SparkR
.
library(SparkR)
sparkR.session()
Jeśli wystąpi błąd podczas importowania SparkR
pakietu, uruchom .libPaths()
polecenie i sprawdź, czy /home/ubuntu/databricks/spark/R/lib
znajduje się on w wyniku.
Jeśli nie jest uwzględniona, sprawdź zawartość elementu /usr/lib/R/etc/Rprofile.site
.
List
/home/ubuntu/databricks/spark/R/lib/SparkR
na sterowniku, aby sprawdzić, czy pakiet SparkR
jest zainstalowany.
Jak mogę rozpocząć sesjęsparklyr
?
Pakiet sparklyr
musi być zainstalowany w klastrze. Aby zainstalować sparklyr
pakiet, użyj jednej z następujących metod:
- Jako biblioteka usługi Azure Databricks
-
install.packages()
polecenie - Interfejs użytkownika zarządzania pakietami programu RStudio
library(sparklyr)
sc <- spark_connect(method = “databricks”)
Jak program RStudio integruje się z notesami języka R usługi Azure Databricks?
Możesz przenieść pracę między notesami i programem RStudio za pomocą kontroli wersji.
Czym jest katalog roboczy?
Po uruchomieniu projektu w programie RStudio wybierz katalog roboczy. Domyślnie jest to katalog domowy w kontenerze sterownika (master) where, w którym uruchomiony jest RStudio Server. Jeśli chcesz, możesz zmienić ten katalog.
Czy mogę uruchomić aplikację Shiny z programu RStudio uruchomionego w usłudze Azure Databricks?
Tak, można tworzyć i wyświetlać aplikacje Shiny w programie RStudio Server w usłudze Databricks.
Nie mogę używać terminalu ani narzędzia Git w programie RStudio w usłudze Azure Databricks. Jak rozwiązać ten problem?
Upewnij się, że wyłączono zestawy websocket. W programie RStudio Server Open Source Edition możesz to zrobić za pomocą interfejsu użytkownika.
W programie RStudio Server Pro można dodać allow-terminal-websockets=0
element , aby /etc/rstudio/rsession.conf
wyłączyć zestawy websocket dla wszystkich użytkowników.
Nie widzę karty Aplikacje w obszarze szczegółów klastra.
Ta funkcja nie jest dostępna dla wszystkich klientów. Musisz być w planie Premium.