RStudio in Azure Databricks
U kunt RStudio, een populaire IDE (Integrated Development Environment) voor R, gebruiken om verbinding te maken met Azure Databricks-rekenresources in Azure Databricks-werkruimten. Gebruik RStudio Desktop om verbinding te maken met een Azure Databricks-cluster of een SQL-warehouse vanaf uw lokale ontwikkelcomputer. U kunt ook uw webbrowser gebruiken om u aan te melden bij uw Azure Databricks-werkruimte en vervolgens verbinding te maken met een Azure Databricks-cluster waarop RStudio Server is geïnstalleerd, binnen die werkruimte.
Verbinding maken met RStudio Desktop
Gebruik RStudio Desktop om verbinding te maken met een extern Azure Databricks-cluster of SQL Warehouse vanaf uw lokale ontwikkelcomputer. Als u in dit scenario verbinding wilt maken, gebruikt u een ODBC-verbinding en roept u ODBC-pakketfuncties aan voor R, die in deze sectie worden beschreven.
Notitie
U kunt geen pakketten zoals SparkR of sparklyr gebruiken in dit RStudio Desktop-scenario, tenzij u ook Databricks Connect gebruikt. Als alternatief voor het gebruik van RStudio Desktop kunt u uw webbrowser gebruiken om u aan te melden bij uw Azure Databricks-werkruimte en vervolgens verbinding te maken met een Azure Databricks-cluster waarop RStudio Server in die werkruimte is geïnstalleerd.
RStudio Desktop instellen op uw lokale ontwikkelcomputer:
- Download en installeer R 3.3.0 of hoger.
- Download en installeer RStudio Desktop.
- Start RStudio Desktop.
(Optioneel) Een RStudio-project maken:
- Start RStudio Desktop.
- Klik op Bestand > nieuw project.
- Selecteer Nieuw mapproject>.
- Kies een nieuwe map voor het project en klik vervolgens op Project maken.
Een R-script maken:
- Klik terwijl het project is geopend op Bestand nieuw bestand R-script>.>
- Klik op Bestand > opslaan als.
- Geef het bestand een naam en klik vervolgens op Opslaan.
Verbinding maken met het externe Azure Databricks-cluster of SQL Warehouse via ODBC voor R:
Haal de waarden voor de serverhostnaam, poort en HTTP-pad op voor uw externe cluster of SQL Warehouse. Voor een cluster bevinden deze waarden zich op het tabblad JDBC/ODBC van geavanceerde opties. Voor een SQL-warehouse bevinden deze waarden zich op het tabblad Verbindingsgegevens .
Haal een persoonlijk toegangstoken van Azure Databricks op.
Notitie
Als best practice voor beveiliging, wanneer u zich verifieert met geautomatiseerde hulpprogramma's, systemen, scripts en apps, raadt Databricks u aan om persoonlijke toegangstokens te gebruiken die behoren tot service-principals in plaats van werkruimtegebruikers. Zie Tokens voor een service-principal beheren om tokens voor service-principals te maken.
Installeer en configureer het ODBC-stuurprogramma van Databricks voor Windows, macOS of Linux op basis van het besturingssysteem van uw lokale computer.
Stel een ODBC-gegevensbronnaam (DSN) in op uw externe cluster of SQL Warehouse voor Windows, macOS of Linux, op basis van het besturingssysteem van uw lokale computer.
Installeer vanuit de RStudio-console (View > Move Focus to Console) de odbc - en DBI-pakketten van 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" )
Laad de geïnstalleerde
odbc
bestanden enDBI
pakketten in uw R-script (Focus verplaatsen naar bron weergeven>):library(odbc) library(DBI)
Roep de ODBC-versie van de dbConnect-functie aan in het
DBI
pakket, waarbij u hetodbc
stuurprogramma in hetodbc
pakket opgeeft, evenals de ODBC-DSN die u hebt gemaakt, bijvoorbeeld een ODBC-DSN vanDatabricks
.conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Roep een bewerking aan via de ODBC-DSN, bijvoorbeeld een
SELECT
instructie via de dbGetQuery-functie in hetDBI
pakket, waarbij u de naam van de verbindingsvariabele en deSELECT
instructie zelf opgeeft, bijvoorbeeld uit een tabel met de naamdefault
diamonds
in een schema (database):print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Het volledige R-script is als volgt:
library(odbc)
library(DBI)
conn = dbConnect(
drv = odbc(),
dsn = "Databricks"
)
print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Als u het script wilt uitvoeren, klikt u in de bronweergave op Bron. De resultaten voor het voorgaande R-script zijn als volgt:
_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
Verbinding maken met een door Databricks gehoste RStudio Server
Belangrijk
Databricks-gehoste RStudio Server is afgeschaft en is alleen beschikbaar in Databricks Runtime-versies 15.4 en lager. Voor meer informatie raadpleegt u Afschaffing van Hosted RStudio Server.
Gebruik uw webbrowser om u aan te melden bij uw Azure Databricks-werkruimte en maak vervolgens verbinding met een Azure Databricks-rekenproces waarop RStudio Server in die werkruimte is geïnstalleerd.
Zie Verbinding maken met een databricks-gehoste RStudio-server voor meer informatie
RStudio-integratiearchitectuur
Wanneer u RStudio Server in Azure Databricks gebruikt, wordt de RStudio Server Daemon uitgevoerd op het stuurprogrammaknooppunt van een Azure Databricks-cluster. De RStudio-webinterface wordt geproxied via azure Databricks-web-app. Dit betekent dat u geen wijzigingen hoeft aan te brengen in de configuratie van uw clusternetwerk. In dit diagram ziet u de architectuur van het RStudio-integratieonderdeel.
Waarschuwing
Azure Databricks proxy's de RStudio-webservice vanuit poort 8787 op het Spark-stuurprogramma van het cluster. Deze webproxy is alleen bedoeld voor gebruik met RStudio. Als u andere webservices op poort 8787 start, kunt u uw gebruikers blootstellen aan mogelijke beveiligingsexplots. Databricks en Microsoft zijn niet verantwoordelijk voor problemen die het gevolg zijn van de installatie van niet-ondersteunde software in een cluster.
Vereisten
Het cluster moet een cluster voor alle doeleinden zijn.
U moet de machtiging CAN ATTACH TO voor dat cluster hebben. De clusterbeheerder kan u deze machtiging verlenen. Zie Compute-machtigingen.
Het cluster mag geen toegangsbeheer voor tabellen, automatische beëindiging of referentiepassthrough zijn ingeschakeld.
Het cluster mag de modus Gedeelde toegang niet gebruiken.
Voor het cluster mag de Spark-configuratie
spark.databricks.pyspark.enableProcessIsolation
niet zijn ingesteldtrue
.U moet een drijvende Pro-licentie voor RStudio Server hebben om de Pro-editie te kunnen gebruiken.
Notitie
Hoewel het cluster een toegangsmodus kan gebruiken die ondersteuning biedt voor Unity Catalog, kunt u RStudio Server van dat cluster niet gebruiken voor toegang tot gegevens in Unity Catalog.
Aan de slag: RStudio Server OS Edition
RStudio Server Open Source Edition is vooraf geïnstalleerd op Azure Databricks-clusters die Databricks Runtime voor Machine Learning (Databricks Runtime ML) gebruiken.
Ga als volgt te werk om RStudio Server OS Edition op een cluster te openen:
Open de pagina met details van het cluster.
Start het cluster en klik vervolgens op het tabblad Apps :
Klik op het tabblad Apps op de knop RStudio instellen. Hiermee wordt een eenmalig wachtwoord voor u gegenereerd. Klik op de koppeling Weergeven om deze weer te geven en kopieer het wachtwoord.
Klik op de koppeling RStudio openen om de gebruikersinterface op een nieuw tabblad te openen. Voer uw gebruikersnaam en wachtwoord in het aanmeldingsformulier in en meld u aan.
Vanuit de gebruikersinterface van RStudio kunt u het
SparkR
pakket importeren en eenSparkR
sessie instellen om Spark-taken in uw cluster te starten.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)
U kunt ook het sparklyr-pakket koppelen en een Spark-verbinding instellen.
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)
Aan de slag: RStudio Workbench
In deze sectie wordt beschreven hoe u RStudio Workbench (voorheen RStudio Server Pro) instelt en gebruikt in een Azure Databricks-cluster. Afhankelijk van uw licentie kan RStudio Workbench RStudio Server Pro bevatten.
RStudio-licentieserver instellen
Als u RStudio Workbench in Azure Databricks wilt gebruiken, moet u uw Pro-licentie converteren naar een zwevende licentie. Neem voor hulp contact op met help@rstudio.com. Wanneer uw licentie wordt geconverteerd, moet u een licentieserver instellen voor RStudio Workbench.
Een licentieserver instellen:
- Start een klein exemplaar in uw cloudprovidernetwerk; de daemon van de licentieserver is zeer lichtgewicht.
- Download en installeer de bijbehorende versie van RStudio License Server op uw exemplaar en start de service. Zie de beheerdershandleiding voor RStudio Workbench voor gedetailleerde instructies.
- Zorg ervoor dat de poort van de licentieserver is geopend voor Azure Databricks-exemplaren.
RStudio Workbench installeren
Als u RStudio Workbench wilt instellen op een Azure Databricks-cluster, moet u een init-script maken om het binaire RStudio Workbench-pakket te installeren en te configureren voor het gebruik van uw licentieserver voor licentielease.
Notitie
Als u van plan bent RStudio Workbench te installeren op een Databricks Runtime-versie die al een RStudio Server Open Source Edition-pakket bevat, moet u eerst dat pakket verwijderen om te kunnen worden geïnstalleerd.
Hier volgt een voorbeeldbestand .sh
dat u kunt opslaan als een init-script op een locatie, zoals in uw basismap als een werkruimtebestand, in een Unity Catalog-volume of in objectopslag. Zie Init-scripts met clusterbereik voor meer informatie. Het script voert ook aanvullende verificatieconfiguraties uit die de integratie met Azure Databricks stroomlijnen.
Waarschuwing
Init-scripts met clusterbereik op DBFS zijn het einde van de levensduur. Het opslaan van init-scripts in DBFS bestaat in sommige werkruimten ter ondersteuning van verouderde workloads en wordt niet aanbevolen. Alle init-scripts die zijn opgeslagen in DBFS, moeten worden gemigreerd. Zie Init-scripts migreren vanuit DBFS voor migratie-instructies.
#!/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
- Vervang
<domain>
door uw Azure Databricks-URL en<license-server-url>
door de URL van uw zwevende licentieserver. - Sla dit
.sh
bestand op als een init-script op een locatie, zoals in uw basismap als een werkruimtebestand, in een Unity Catalog-volume of in objectopslag. Zie Init-scripts met clusterbereik voor meer informatie. - Voordat u een cluster start, voegt u dit
.sh
bestand toe als een init-script vanaf de bijbehorende locatie. Zie Init-scripts met clusterbereik voor instructies. - Start het cluster.
RStudio Server Pro gebruiken
Open de pagina met details van het cluster.
Start het cluster en klik op het tabblad Apps :
Klik op het tabblad Apps op de knop RStudio instellen.
U hebt het eenmalige wachtwoord niet nodig. Klik op de koppeling RStudio UI openen en er wordt een geverifieerde RStudio Pro-sessie voor u geopend.
Vanuit de gebruikersinterface van RStudio kunt u het
SparkR
pakket koppelen en eenSparkR
sessie instellen om Spark-taken in uw cluster te starten.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)
U kunt ook het sparklyr-pakket koppelen en een Spark-verbinding instellen.
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)
Veelgestelde vragen over RStudio Server
Wat is het verschil tussen RStudio Server Open Source Edition en RStudio Workbench?
RStudio Workbench ondersteunt een breed scala aan bedrijfsfuncties die niet beschikbaar zijn in de Open Source Edition. U kunt de functievergelijking bekijken op de website van RStudio.
Daarnaast wordt RStudio Server Open Source Edition gedistribueerd onder de GNU Affero General Public License (AGPL), terwijl de Pro-versie wordt geleverd met een commerciële licentie voor organisaties die geen AGPL-software kunnen gebruiken.
Tot slot wordt RStudio Workbench geleverd met professionele en zakelijke ondersteuning van RStudio, PBC, terwijl RStudio Server Open Source Edition zonder ondersteuning wordt geleverd.
Kan ik mijn RStudio Workbench/RStudio Server Pro-licentie gebruiken in Azure Databricks?
Ja, als u al een Pro- of Enterprise-licentie voor RStudio Server hebt, kunt u die licentie gebruiken in Azure Databricks. Zie Aan de slag: RStudio Workbench voor meer informatie over het instellen van RStudio Workbench in Azure Databricks.
Waar wordt RStudio Server uitgevoerd? Moet ik aanvullende services/servers beheren?
Zoals u kunt zien in het diagram in de RStudio-integratiearchitectuur, wordt de RStudio Server-daemon uitgevoerd op het stuurprogrammaknooppunt (hoofdknooppunt) van uw Azure Databricks-cluster. Met RStudio Server Open Source Edition hoeft u geen extra servers/services uit te voeren. Voor RStudio Workbench moet u echter een afzonderlijk exemplaar beheren waarop RStudio License Server wordt uitgevoerd.
Kan ik RStudio Server gebruiken op een standaardcluster?
Notitie
In dit artikel worden de gebruikersinterface van verouderde clusters beschreven. Zie de referentie voor compute-configuratie voor informatie over de gebruikersinterface van nieuwe clusters (in preview), inclusief terminologiewijzigingen voor clustertoegangsmodi. Zie Clusters UI-wijzigingen en clustertoegangsmodi voor een vergelijking van de nieuwe en verouderde clustertypen.
Ja, dat kan.
Kan ik RStudio Server op een cluster gebruiken met automatische beëindiging?
Nee, u kunt RStudio niet gebruiken wanneer automatische beëindiging is ingeschakeld. Automatische beëindiging kan niet-opgeslagen gebruikersscripts en -gegevens in een RStudio-sessie opschonen. Om gebruikers te beschermen tegen dit onbedoelde scenario voor gegevensverlies, wordt RStudio standaard uitgeschakeld op dergelijke clusters.
Voor klanten die clusterresources moeten opschonen wanneer ze niet worden gebruikt, raadt Databricks aan om cluster-API's te gebruiken om RStudio-clusters op te schonen op basis van een schema.
Hoe kan ik mijn werk in RStudio behouden?
We raden u ten zeerste aan uw werk te behouden met behulp van een versiebeheersysteem van RStudio. RStudio biedt geweldige ondersteuning voor verschillende versiebeheersystemen en stelt u in staat om uw projecten in te checken en te beheren. Als u uw code niet op een van de volgende manieren bewaart, loopt u het risico dat u uw werk kwijtraakt als een werkruimtebeheerder het cluster opnieuw start of beëindigt.
Een methode is om uw bestanden (code of gegevens) op te slaan in dbFS? Als u bijvoorbeeld een bestand onder /dbfs/
de bestanden opslaat, wordt niet verwijderd wanneer uw cluster wordt beëindigd of opnieuw wordt opgestart.
Een andere methode is om het R-notebook op te slaan in uw lokale bestandssysteem door het te exporteren als Rmarkdown
en het bestand later te importeren in het RStudio-exemplaar. In de blog R Notebooks delen met RMarkdown worden de stappen in meer detail beschreven.
Hoe kan ik een SparkR
sessie starten?
SparkR
is opgenomen in Databricks Runtime, maar u moet deze in RStudio laden. Voer de volgende code uit in RStudio om een SparkR
sessie te initialiseren.
library(SparkR)
sparkR.session()
Als er een fout optreedt bij het importeren van het pakket, voert .libPaths()
u het SparkR
uit en controleert u of het /home/ubuntu/databricks/spark/R/lib
pakket is opgenomen in het resultaat.
Als deze niet is opgenomen, controleert u de inhoud van /usr/lib/R/etc/Rprofile.site
. Lijst /home/ubuntu/databricks/spark/R/lib/SparkR
op het stuurprogramma om te controleren of het SparkR
pakket is geïnstalleerd.
Hoe kan ik een sparklyr
sessie starten?
Het sparklyr
pakket moet op het cluster worden geïnstalleerd. Gebruik een van de volgende methoden om het sparklyr
pakket te installeren:
- Als Een Azure Databricks-bibliotheek
install.packages()
opdracht- Gebruikersinterface voor RStudio-pakketbeheer
library(sparklyr)
sc <- spark_connect(method = “databricks”)
Hoe kan RStudio worden geïntegreerd met Azure Databricks R-notebooks?
U kunt uw werk verplaatsen tussen notebooks en RStudio via versiebeheer.
Wat is de werkmap?
Wanneer u een project in RStudio start, kiest u een werkmap. Dit is standaard de basismap in de stuurprogrammacontainer (hoofdcontainer) waarop RStudio Server wordt uitgevoerd. U kunt deze map desgewenst wijzigen.
Kan ik Shiny Apps starten vanuit RStudio die wordt uitgevoerd op Azure Databricks?
Ja, u kunt Shiny-toepassingen ontwikkelen en weergeven in RStudio Server op Databricks.
Ik kan terminal of git niet gebruiken in RStudio in Azure Databricks. Hoe kan ik dat oplossen?
Zorg ervoor dat u websockets hebt uitgeschakeld. In RStudio Server Open Source Edition kunt u dit doen vanuit de gebruikersinterface.
In RStudio Server Pro kunt u toevoegen allow-terminal-websockets=0
om /etc/rstudio/rsession.conf
websockets voor alle gebruikers uit te schakelen.
Ik zie het tabblad Apps niet onder clusterdetails.
Deze functie is niet beschikbaar voor alle klanten. U moet zich in het Premium-abonnement bevinden.