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 Verbinding maken 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:

  1. Download en installeer R 3.3.0 of hoger.
  2. Download en installeer RStudio Desktop.
  3. Start RStudio Desktop.

(Optioneel) Een RStudio-project maken:

  1. Start RStudio Desktop.
  2. Klik op Bestand > nieuw project.
  3. Selecteer Nieuw mapproject>.
  4. Kies een nieuwe map voor het project en klik vervolgens op Project maken.

Een R-script maken:

  1. Klik terwijl het project is geopend op Bestand nieuw bestand R-script>.>
  2. Klik op Bestand > opslaan als.
  3. 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:

  1. 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 Verbinding maken iondetails.

  2. 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.

  3. Installeer en configureer het ODBC-stuurprogramma van Databricks voor Windows, macOS of Linux op basis van het besturingssysteem van uw lokale computer.

  4. 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.

  5. 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"
    )
    
  6. Laad de geïnstalleerde odbc bestanden en DBI pakketten in uw R-script (Focus verplaatsen naar bron weergeven>):

    library(odbc)
    library(DBI)
    
  7. Roep de ODBC-versie van de db Verbinding maken-functie aan in het DBI pakket, waarbij u het odbc stuurprogramma in het odbc pakket opgeeft, evenals de ODBC-DSN die u hebt gemaakt, bijvoorbeeld een ODBC-DSN van Databricks.

    conn = dbConnect(
      drv = odbc(),
      dsn = "Databricks"
    )
    
  8. Roep een bewerking aan via de ODBC-DSN, bijvoorbeeld een SELECT instructie via de dbGetQuery-functie in het DBI pakket, waarbij u de naam van de verbindingsvariabele en de SELECT instructie zelf opgeeft, bijvoorbeeld uit een tabel met de naam defaultdiamonds 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 RStudio Server

Gebruik uw webbrowser 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, in die werkruimte.

Notitie

Als alternatief voor RStudio Server kunt u RStudio Desktop gebruiken om verbinding te maken met een Azure Databricks-cluster of SQL-warehouse vanaf uw lokale ontwikkelcomputer via een ODBC-verbinding en ODBC-pakketfuncties aan te roepen voor R. U kunt geen pakketten zoals SparkR of sparklyr gebruiken in het RStudio Desktop-scenario, tenzij u ook Databricks Verbinding maken gebruikt.

Voor RStudio Server kunt u de Open Source Edition of RStudio Workbench (voorheen RStudio Server Pro) in Azure Databricks gebruiken. Als u RStudio Workbench /RStudio Server Pro wilt gebruiken, moet u uw bestaande RStudio Workbench/RStudio Server Pro-licentie overdragen naar Azure Databricks (zie Aan de slag: RStudio Workbench).

Databricks raadt u aan om Databricks Runtime voor Machine Learning (Databricks Runtime ML) te gebruiken in Azure Databricks-clusters met RStudio Server om de begintijden van het cluster te verminderen. Databricks Runtime ML bevat een ongewijzigde versie van het RStudio Server Open Source Edition-pakket waarvoor de broncode te vinden is in GitHub. De volgende tabel bevat de versie van RStudio Server Open Source Edition die momenteel vooraf is geïnstalleerd in Databricks Runtime ML-versies.

Databricks Runtime voor ML-versie RStudio Server-versie
Databricks Runtime 9.1 LTS ML en 10.4 LTS ML 1.4

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.

Architectuur van RStudio in Databricks

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 Gedeeldetoegang 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:

  1. Open de pagina met details van het cluster.

  2. Start het cluster en klik vervolgens op het tabblad Apps :

    Tabblad Cluster-apps

  3. 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.

    Eenmalige wachtwoord voor RStudio

  4. 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.

    RStudio-aanmeldingsformulier

  5. Vanuit de gebruikersinterface van RStudio kunt u het SparkR pakket importeren en een SparkR 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)
    

    RStudio Open Source Edition-sessie

  6. 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)
    

    Sparklyr-verbinding voor RStudio Open Source Edition

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. Zie een veelgestelde vragen over de naamwijziging. 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:

  1. Start een klein exemplaar in uw cloudprovidernetwerk; de daemon van de licentieserver is zeer lichtgewicht.
  2. Download en installeer de bijbehorende versie van RStudio License Server op uw exemplaar en start de service. Zie RStudio Workbench Beheer Guide voor gedetailleerde instructies.
  3. 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 gebruiken 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
  1. Vervang <domain> door uw Azure Databricks-URL en <license-server-url> door de URL van uw zwevende licentieserver.
  2. 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 gebruiken voor meer informatie.
  3. Voordat u een cluster start, voegt u dit .sh bestand toe als een init-script vanaf de bijbehorende locatie. Zie Init-scripts met clusterbereik gebruiken voor instructies.
  4. Start het cluster.

RStudio Server Pro gebruiken

  1. Open de pagina met details van het cluster.

  2. Start het cluster en klik op het tabblad Apps :

    Tabblad Cluster-apps

  3. Klik op het tabblad Apps op de knop RStudio instellen.

    Eenmalige wachtwoord voor RStudio

  4. 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.

  5. Vanuit de gebruikersinterface van RStudio kunt u het SparkR pakket koppelen en een SparkR 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)
    

    RStudio Pro-sessie

  6. 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)
    

    RStudio Pro sparklyr-verbinding

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 het opslaan van uw bestanden (code of gegevens) in het Databricks File System (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 Rmarkdownen 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.

RStudio-sessie

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.