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 Connectet 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:
- Töltse le és telepítse az R 3.3.0-s vagy újabb verzióját.
- Töltse le és telepítse az RStudio Desktopot.
- Indítsa el az RStudio Desktopot.
(Nem kötelező) RStudio-projekt létrehozása:
- Indítsa el az RStudio Desktopot.
- Kattintson az Új projekt fájlja > elemre.
- Válassza az Új könyvtár > új projekt lehetőséget.
- Válasszon egy új könyvtárat a projekthez, majd kattintson a Projekt létrehozása gombra.
R-szkript létrehozása:
- Ha meg van nyitva a projekt, kattintson az Új fájl > R-szkript fájlra>.
- Kattintson a Fájl > mentése másként gombra.
- 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:
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 Kapcsolat részletei lapon találhatók.
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.
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.
Á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.
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" )
Vissza az R-szkriptbe (Fókusz > áthelyezése a forrásba) töltse be a telepített
odbc
ésDBI
a csomagokat:library(odbc) library(DBI)
Hívja meg a csomag dbConnect
DBI
függvényének ODBC-verzióját, és adja meg aodbc
odbc
csomag illesztőprogramját, valamint a létrehozott ODBC DSN-t, például egy ODBC DSN-tDatabricks
.conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Meghívhat egy műveletet az ODBC DSN-n keresztül, például egy utasítást
SELECT
aDBI
csomag dbGetQuery függvényén keresztül, megadva a kapcsolati változó nevét és magát azSELECT
utasítást, például egy séma (adatbázis) nevűdefault
tá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 Databricks által üzemeltetett RStudio-kiszolgálóhoz
Fontos
A Databricks által üzemeltetett RStudio-kiszolgáló elavult , és csak a Databricks Runtime 15.4-ös és újabb verzióiban érhető el. További információ: Hosted RStudio Server elavulása.
A webböngésző használatával jelentkezzen be az Azure Databricks-munkaterületre, majd csatlakozzon egy Azure Databricks-számításhoz, amely az adott munkaterületen telepített RStudio Serverrel rendelkezik.
További információ: Csatlakozás a Databricks által üzemeltetett RStudio-kiszolgálóhoz
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.
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
A fürtnek teljes körű fürtnek kell lennie.
Ehhez a fürthöz CSATOLVA engedéllyel kell rendelkeznie. Ezt az engedélyt a fürt rendszergazdája is megadhatja. Lásd: Számítási engedélyek.
A fürt nem rendelkezhet táblahozzáférés-vezérléssel, automatikus leállítással vagy hitelesítő adatok átengedésével .
A fürt nem használhat megosztott hozzáférési módot.
A fürtnek nem szabad a Spark-konfigurációt
spark.databricks.pyspark.enableProcessIsolation
beállítaniatrue
.A Pro kiadás használatához RStudio Server lebegő Pro-licenccel kell rendelkeznie.
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 Learninget (Databricks Runtime ML) használó Azure Databricks-fürtökön.
Az RStudio Server OS Edition fürtre való megnyitásához tegye a következőket:
Nyissa meg a fürt részletes lapját.
Indítsa el a fürtöt, majd kattintson az Alkalmazások fülre:
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.
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.
Az RStudio felhasználói felületén importálhatja a
SparkR
csomagot, és beállíthat egy munkamenetetSparkR
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)
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)
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. 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:
- Nyisson meg egy kis példányt a felhőszolgáltatói hálózaton; A licenckiszolgáló démonja nagyon egyszerű.
- 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 felügyeleti útmutatót.
- 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
- Cserélje le
<domain>
az Azure Databricks URL-címét és<license-server-url>
a lebegő licenckiszolgáló URL-címét. - 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. - 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. - Indítsa el a fürtöt.
Az RStudio Server Pro használata
Nyissa meg a fürt részletes lapját.
Indítsa el a fürtöt, és kattintson az Alkalmazások fülre:
Az Alkalmazások lapon kattintson az RStudio beállítása gombra.
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.
Az RStudio felhasználói felületén csatolhatja a
SparkR
csomagot, és beállíthat egySparkR
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)
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 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 What is DBFS?-be. 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, Rmarkdown
majd 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.
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.