RStudio az Azure Databricksen

Az RStudio, az R népszerű integrált fejlesztési környezete (IDE) használatával csatlakozhat az Azure Databricks számítási erőforrásaihoz az Azure Databricks-munkaterületeken belül. Az RStudio Desktop használatával csatlakozhat egy Azure Databricks-fürthöz vagy egy SQL-raktárhoz a helyi fejlesztőgépről. A webböngészővel bejelentkezhet az Azure Databricks-munkaterületre, majd csatlakozhat egy olyan Azure Databricks-fürthöz, amely az RStudio Serverrel rendelkezik a munkaterületen belül.

Csatlakozás az RStudio Desktop használatával

Az RStudio Desktop használatával csatlakozhat egy távoli Azure Databricks-fürthöz vagy SQL Warehouse-hoz a helyi fejlesztőgépről. Ha ebben a forgatókönyvben szeretne csatlakozni, használjon ODBC-kapcsolatot, és hívja meg az R-hez készült ODBC-csomagfüggvényeket, amelyeket ebben a szakaszban ismertetünk.

Feljegyzés

Ebben az RStudio Desktop-forgatókönyvben nem használhat olyan csomagokat, mint a SparkR vagy a Sparklyr, kivéve, ha a Databricks Csatlakozás is használja. Az RStudio Desktop használata helyett a webböngészővel bejelentkezhet az Azure Databricks-munkaterületre, majd csatlakozhat egy Olyan Azure Databricks-fürthöz, amely az adott munkaterületre telepített RStudio-kiszolgálóval rendelkezik.

Az RStudio Desktop beállítása a helyi fejlesztőgépen:

  1. Töltse le és telepítse az R 3.3.0-s vagy újabb verzióját.
  2. Töltse le és telepítse az RStudio Desktopot.
  3. Indítsa el az RStudio Desktopot.

(Nem kötelező) RStudio-projekt létrehozása:

  1. Indítsa el az RStudio Desktopot.
  2. Kattintson az Új projekt fájlja > elemre.
  3. Válassza az Új könyvtár > új projekt lehetőséget.
  4. Válasszon egy új könyvtárat a projekthez, majd kattintson a Projekt létrehozása gombra.

R-szkript létrehozása:

  1. Ha meg van nyitva a projekt, kattintson az Új fájl > R-szkript fájlra>.
  2. Kattintson a Fájl > mentése másként gombra.
  3. Nevezze el a fájlt, majd kattintson a Mentés gombra.

Távoli Azure Databricks-fürthöz vagy SQL Warehouse-hoz való csatlakozás az ODBC for R-n keresztül:

  1. Kérje le a kiszolgáló állomásnevét, portját és HTTP-elérési útját a távoli fürthöz vagy az SQL Warehouse-hoz. Fürtök esetén ezek az értékek a Speciális beállítások JDBC/ODBC lapján találhatók. SQL-raktár esetén ezek az értékek a Csatlakozás ion details lapon találhatók.

  2. Azure Databricks személyes hozzáférési jogkivonat beszerzése.

    Feljegyzés

    Ajánlott biztonsági eljárásként, ha automatizált eszközökkel, rendszerekkel, szkriptekkel és alkalmazásokkal hitelesít, a Databricks azt javasolja, hogy munkaterület-felhasználók helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonatokat használja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.

  3. Telepítse és konfigurálja a Databricks ODBC-illesztőprogramot Windowshoz, macOS-hez vagy Linuxhoz a helyi gép operációs rendszere alapján.

  4. Állítson be egy ODBC-adatforrásnevet (DSN) a távoli fürtre vagy sql warehouse-ra Windows, macOS vagy Linux rendszeren a helyi gép operációs rendszere alapján.

  5. Az RStudio konzolról (Fókusz > áthelyezése konzolra) telepítse az odbc- és DBI-csomagokat a CRAN-ból:

    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. Vissza az R-szkriptbe (Fókusz > áthelyezése a forrásba) töltse be a telepített odbc és DBI a csomagokat:

    library(odbc)
    library(DBI)
    
  7. Hívja meg a csomag ODBC-verzióját Csatlakozás függvénytDBI, és adja meg a odbcodbc csomag illesztőprogramját, valamint a létrehozott ODBC DSN-t, például egy ODBC DSN-tDatabricks.

    conn = dbConnect(
      drv = odbc(),
      dsn = "Databricks"
    )
    
  8. Meghívhat egy műveletet az ODBC DSN-n keresztül, például egy utasítást SELECT a DBI csomag dbGetQuery függvényén keresztül, megadva a kapcsolati változó nevét és magát az SELECT utasítást, például egy séma (adatbázis) nevű defaulttáblábóldiamonds:

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

A teljes R-szkript a következő:

library(odbc)
library(DBI)

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

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

A szkript futtatásához a forrásnézetben kattintson a Forrás gombra. Az előző R-szkript eredményei a következők:

  _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

Csatlakozás RStudio Server használatával

A webböngésző használatával jelentkezzen be az Azure Databricks-munkaterületre, majd csatlakozzon egy olyan Azure Databricks-fürthöz, amely az RStudio Servert telepítette a munkaterületen belül.

Feljegyzés

Az RStudio Server alternatívaként az RStudio Desktop használatával csatlakozhat egy Azure Databricks-fürthöz vagy SQL Warehouse-hoz a helyi fejlesztőgépről egy ODBC-kapcsolaton keresztül, és meghívhatja az R ODBC-csomagfüggvényeit. Az RStudio Desktop forgatókönyvében nem használhat olyan csomagokat, mint a SparkR vagy a Sparklyr, kivéve, ha a Databricks Csatlakozás is használja.

Az RStudio Serverhez használhatja az Open Source Edition vagy az RStudio Workbench (korábban RStudio Server Pro) kiadást az Azure Databricksben. Ha RStudio Workbench/ RStudio Server Pro-t szeretne használni, akkor a meglévő RStudio Workbench/ RStudio Server Pro-licencet át kell helyeznie az Azure Databricksbe (lásd : Első lépések: RStudio Workbench).

A Databricks javasolja a Databricks Runtime for Machine Tanulás (Databricks Runtime ML) használatát az RStudio Serverrel rendelkező Azure Databricks-fürtökön a fürt kezdési idejének csökkentése érdekében. A Databricks Runtime ML az RStudio Server Open Source Edition csomag egy nem módosított verzióját tartalmazza, amelyhez a forráskód megtalálható a GitHubon. Az alábbi táblázat az RStudio Server Open Source Edition azon verzióját sorolja fel, amely jelenleg előre telepítve van a Databricks Runtime ML-verziókon.

Databricks Runtime az ML-verzióhoz RStudio-kiszolgáló verziója
Databricks Runtime 9.1 LTS ML és 10.4 LTS ML 1.4

RStudio integrációs architektúra

Amikor az RStudio Servert az Azure Databricksben használja, az RStudio Server Daemon egy Azure Databricks-fürt illesztőprogram-csomópontján fut. Az RStudio webes felhasználói felülete az Azure Databricks webappon keresztül érhető el, ami azt jelenti, hogy nem kell módosítania a fürt hálózati konfigurációját. Ez a diagram az RStudio integrációs összetevő architektúrát mutatja be.

Az RStudio architektúrája a Databricksen

Figyelmeztetés

Az Azure Databricks az RStudio webszolgáltatást a fürt Spark-illesztőprogramjának 8787-s portjáról proxyz. Ez a webes proxy csak az RStudio használatával használható. Ha a 8787-ös porton más webszolgáltatásokat is elindít, a felhasználókat potenciális biztonsági rések érhetik el. Sem a Databricks, sem a Microsoft nem felelős a nem támogatott szoftverek fürtön való telepítéséből eredő problémákért.

Követelmények

Feljegyzés

Bár a fürt használhat olyan hozzáférési módot , amely támogatja a Unity Katalógust, a fürtről származó RStudio-kiszolgáló nem használható adatok elérésére a Unity Catalogban.

Első lépések: RStudio Server OS Edition

Az RStudio Server Open Source Edition előre telepítve van a Databricks Runtime for Machine Tanulás (Databricks Runtime ML) rendszert használó Azure Databricks-fürtökön.

Az RStudio Server OS Edition fürtre való megnyitásához tegye a következőket:

  1. Nyissa meg a fürt részletes lapját.

  2. Indítsa el a fürtöt, majd kattintson az Alkalmazások fülre:

    Fürtalkalmazások lap

  3. Az Alkalmazások lapon kattintson az RStudio beállítása gombra. Ez egyszeri jelszót hoz létre Önnek. Kattintson a megjelenítési hivatkozásra a megjelenítéshez és a jelszó másolásához.

    RStudio egyszeri jelszó

  4. Az RStudio megnyitása hivatkozásra kattintva nyissa meg a felhasználói felületet egy új lapon. Adja meg a felhasználónevet és a jelszót a bejelentkezési űrlapon, és jelentkezzen be.

    RStudio bejelentkezési űrlap

  5. Az RStudio felhasználói felületén importálhatja a SparkR csomagot, és beállíthat egy munkamenetet SparkR a Spark-feladatok fürtön való elindításához.

    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 munkamenet

  6. Csatolhatja a Sparklyr-csomagot is, és beállíthat egy Spark-kapcsolatot.

    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 Open Source Edition sparklyr kapcsolat

Első lépések: RStudio Workbench

Ez a szakasz bemutatja, hogyan állíthatja be és kezdheti el az RStudio Workbench (korábbi nevén RStudio Server Pro) használatát egy Azure Databricks-fürtön. Lásd a névváltoztatással kapcsolatos gyakori kérdéseket. A licenctől függően az RStudio Workbench tartalmazhat RStudio Server Pro-t is.

RStudio licenckiszolgáló beállítása

Az RStudio Workbench Azure Databricksen való használatához a Pro-licencet lebegő licencké kell konvertálnia. Segítségért forduljon a következőhöz help@rstudio.com: . A licenc konvertálása után be kell állítania egy licenckiszolgálót az RStudio Workbenchhez.

Licenckiszolgáló beállítása:

  1. Nyisson meg egy kis példányt a felhőszolgáltatói hálózaton; A licenckiszolgáló démonja nagyon egyszerű.
  2. Töltse le és telepítse az RStudio licenckiszolgáló megfelelő verzióját a példányra, és indítsa el a szolgáltatást. Részletes útmutatásért tekintse meg az RStudio Workbench Rendszergazda útmutatót.
  3. Győződjön meg arról, hogy a licenckiszolgáló portja nyitva van az Azure Databricks-példányok számára.

Az RStudio Workbench telepítése

Az RStudio Workbench Azure Databricks-fürtön való beállításához létre kell hoznia egy init-szkriptet az RStudio Workbench bináris csomag telepítéséhez és a licenckiszolgáló licencbérlethez való használatára való konfigurálásához.

Feljegyzés

Ha az RStudio Workbench-t olyan Databricks Runtime-verzióra tervezi telepíteni, amely már tartalmazza az RStudio Server Open Source Edition csomagot, először el kell távolítania a csomagot a sikeres telepítéshez.

Az alábbiakban egy példafájlt .sh láthat, amelyet inicializálási szkriptként tárolhat egy helyen, például a kezdőlapon munkaterületfájlként, Unity-katalóguskötetben vagy objektumtárolóban. További információ: Fürt hatókörű init-szkriptek használata. A szkript további hitelesítési konfigurációkat is végrehajt, amelyek leegyszerűsítik az Azure Databricks-integrációt.

Figyelmeztetés

A DBFS fürthatókörű init-szkriptjei életciklusuk végéhez kötöttek. Az init-szkriptek dbFS-ben való tárolása bizonyos munkaterületeken létezik az örökölt számítási feladatok támogatásához, és nem ajánlott. A DBFS-ben tárolt összes init-szkriptet át kell telepíteni. A migrálási utasításokért lásd : Init-szkriptek migrálása a DBFS-ből.

#!/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. Cserélje le <domain> az Azure Databricks URL-címét és <license-server-url> a lebegő licenckiszolgáló URL-címét.
  2. Ezt a .sh fájlt init szkriptként tárolhatja egy helyen, például a kezdőlapon munkaterületfájlként, Unity Catalog-kötetben vagy objektumtárolóban. További információ: Fürt hatókörű init-szkriptek használata.
  3. Fürt indítása előtt adja hozzá ezt a .sh fájlt init-szkriptként a társított helyről. Útmutatásért lásd: Fürthatókörű init-szkriptek használata.
  4. Indítsa el a fürtöt.

Az RStudio Server Pro használata

  1. Nyissa meg a fürt részletes lapját.

  2. Indítsa el a fürtöt, és kattintson az Alkalmazások fülre:

    Fürtalkalmazások lap

  3. Az Alkalmazások lapon kattintson az RStudio beállítása gombra.

    RStudio egyszeri jelszó

  4. Nincs szüksége az egyszeri jelszóra. Kattintson az RStudio felhasználói felületének megnyitása hivatkozásra, és megnyit egy hitelesített RStudio Pro-munkamenetet.

  5. Az RStudio felhasználói felületén csatolhatja a SparkR csomagot, és beállíthat egy SparkR munkamenetet a Spark-feladatok fürtön való elindításához.

    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-munkamenet

  6. Csatolhatja a Sparklyr-csomagot is, és beállíthat egy Spark-kapcsolatot.

    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-kapcsolat

RStudio Server – gyakori kérdések

Mi a különbség az RStudio Server Open Source Edition és az RStudio Workbench között?

Az RStudio Workbench számos olyan vállalati funkciót támogat, amelyek nem érhetők el az Open Source Edition kiadásban. A funkciók összehasonlítását az RStudio webhelyén tekintheti meg.

Emellett az RStudio Server Open Source Edition a GNU Affero General Public License (AGPL) alatt van terjesztve, míg a Pro verzióhoz kereskedelmi licenc tartozik az AGPL-szoftvert nem használó szervezetek számára.

Végül az RStudio Workbench az RStudio, A PBC professzionális és nagyvállalati támogatásával rendelkezik, míg az RStudio Server Open Source Edition nem támogatott.

Használhatom az RStudio Workbench/ RStudio Server Pro licencemet az Azure Databricksen?

Igen, ha már rendelkezik Pro- vagy Enterprise-licenccel az RStudio Serverhez, ezt a licencet használhatja az Azure Databricksben. Az RStudio Workbench használatának első lépéseit az RStudio Workbench azure Databricksen való beállításáról olvashatja.

Hol fut az RStudio Server? Kezelnem kell további szolgáltatásokat/kiszolgálókat?

Ahogy az RStudio integrációs architektúrájának ábráján látható, az RStudio Server démon az Azure Databricks-fürt illesztőprogram-(fő) csomópontján fut. Az RStudio Server Open Source Edition kiadással nem kell további kiszolgálókat/szolgáltatásokat futtatnia. Az RStudio Workbench esetében azonban egy külön példányt kell kezelnie, amely az RStudio licenckiszolgálót futtatja.

Használhatom az RStudio Servert egy standard fürtön?

Feljegyzés

Ez a cikk az örökölt fürtök felhasználói felületét ismerteti. Az új fürtök felhasználói felületével (előzetes verzióban) kapcsolatos információkért, beleértve a fürtelérési módok terminológiájának változásait is, tekintse meg a számítási konfigurációra vonatkozó referenciát. Az új és régi fürttípusok összehasonlításához tekintse meg a fürtök felhasználói felületének változásait és a fürtelérési módokat.

Igen, válthat.

Használhatom az RStudio Servert automatikus leállítással rendelkező fürtön?

Nem, nem használhatja az RStudio-t, ha az automatikus leállítás engedélyezve van. Az automatikus leállítás törölheti a nem mentett felhasználói szkripteket és adatokat egy RStudio-munkameneten belül. Ha meg szeretné védeni a felhasználókat ezzel a nem tervezett adatvesztési forgatókönyvvel szemben, az RStudio alapértelmezés szerint le van tiltva az ilyen fürtökön.

Azoknak az ügyfeleknek, akik nem használják a fürterőforrásokat, a Databricks azt javasolja , hogy fürt API-kkal távolítsa el az RStudio-fürtöket ütemezés szerint.

Hogyan őrizhetem meg a munkámat az RStudio-on?

Határozottan javasoljuk, hogy az RStudio verziókövetési rendszerén keresztül őrizze meg a munkáját. Az RStudio nagy támogatást nyújt a különböző verziókövetési rendszerekhez, és lehetővé teszi a projektek beadásához és kezeléséhez. Ha nem tartja meg a kódot az alábbi módszerek egyikén keresztül, akkor a munkaterület rendszergazdája újraindítja vagy leállítja a fürtöt, a munka elvesztését kockáztatja.

Az egyik módszer a fájlok (kód vagy adatok) mentése a Mi az a Databricks fájlrendszer (DBFS)?. Ha például a fájlokat a fájlok alá /dbfs/ menti, a fürt leállásakor vagy újraindításakor nem törlődik.

Egy másik módszer az R-jegyzetfüzet mentése a helyi fájlrendszerbe úgy, hogy exportálja azt, Rmarkdownmajd később importálja a fájlt az RStudio-példányba. Az R-jegyzetfüzetek RMarkdown használatával történő megosztásáról szóló blog részletesebben ismerteti a lépéseket.

Hogyan elindítani egy munkamenetetSparkR?

SparkR a Databricks Runtime tartalmazza, de be kell töltenie az RStudio-ba. Futtassa az alábbi kódot az RStudio-ben egy SparkR munkamenet inicializálásához.

library(SparkR)

sparkR.session()

Ha hiba történt a SparkR csomag importálása közben, futtassa .libPaths() és ellenőrizze, hogy /home/ubuntu/databricks/spark/R/lib szerepel-e az eredményben.

Ha nem szerepel a fájlban, ellenőrizze a következő tartalmát /usr/lib/R/etc/Rprofile.site: . A csomag telepítésének ellenőrzéséhez listázhatja /home/ubuntu/databricks/spark/R/lib/SparkR az SparkR illesztőprogramot.

Hogyan elindítani egy munkamenetetsparklyr?

A sparklyr csomagot telepíteni kell a fürtre. A csomag telepítéséhez használja az alábbi módszerek egyikét sparklyr :

  • Azure Databricks-kódtárként
  • install.packages() parancs
  • RStudio csomagkezelési felhasználói felület
library(sparklyr)

sc <- spark_connect(method = “databricks”)

Hogyan integrálható az RStudio az Azure Databricks R-notebookokkal?

A munka a jegyzetfüzetek és az RStudio között a verziókövetésen keresztül helyezhető át.

Mi a munkakönyvtár?

Amikor elindít egy projektet az RStudio-ban, kiválaszt egy munkakönyvtárat. Alapértelmezés szerint ez az illesztőprogram (fő) tárolójának kezdőkönyvtára, amelyen az RStudio Server fut. Igény szerint módosíthatja ezt a könyvtárat.

Elindíthatom a Shiny Appst az Azure Databricksen futó RStudio-ból?

Igen, a Shiny-alkalmazásokat a Databricks RStudio-kiszolgálóján belül fejlesztheti és tekintheti meg.

Nem tudok terminált vagy gitet használni az RStudio-ban az Azure Databricksben. Hogyan javíthatom ki?

Győződjön meg arról, hogy letiltotta a websocketeket. Az RStudio Server Open Source Editionben ezt a felhasználói felületen teheti meg.

RStudio-munkamenet

Az RStudio Server Pro-ban hozzáadhatja allow-terminal-websockets=0 a websocketek letiltásához /etc/rstudio/rsession.conf az összes felhasználó számára.

Nem látom az Alkalmazások lapot a fürt részletei alatt.

Ez a funkció nem érhető el minden ügyfél számára. A Prémium csomagban kell lennie.