RStudio в Azure Databricks
Вы можете использовать RStudio, популярную интегрированную среду разработки (IDE) для R, чтобы подключиться к вычислительным ресурсам Azure Databricks в рабочих областях Azure Databricks. Используйте RStudio Desktop для подключения к кластеру Azure Databricks или хранилищуSQL с локального компьютера разработки. Вы также можете использовать веб-браузер для входа в рабочую область Azure Databricks, а затем подключиться к кластеру Azure Databricks с установленным сервером RStudio Server в этой рабочей области.
Подключение с помощью RStudio Desktop
Используйте RStudio Desktop для подключения к удаленному кластеру Azure Databricks или хранилищу SQL с локального компьютера разработки. Чтобы подключиться в этом сценарии, используйте подключение ODBC и вызовите функции пакета ODBC для R, описанные в этом разделе.
Примечание.
В этом сценарии RStudio Desktop нельзя использовать такие пакеты, как SparkR или sparklyr, если вы также не используете Databricks Connect. В качестве альтернативы использованию RStudio Desktop вы можете использовать веб-браузер для входа в рабочую область Azure Databricks, а затем подключиться к кластеру Azure Databricks с установленным сервером RStudio Server в этой рабочей области.
Чтобы настроить RStudio Desktop на локальном компьютере разработки, выполните приведенные далее действия.
- Скачайте и установите R 3.3.0 или более поздней версии.
- Скачайте и установите RStudio Desktop.
- Запустите RStudio Desktop.
(Необязательно) Чтобы создать проект RStudio, выполните приведенные действия.
- Запустите RStudio Desktop.
- Нажмите кнопку "Создать проект>".
- Выберите > каталога.
- Выберите новый каталог для проекта и нажмите кнопку "Создать проект".
Чтобы создать скрипт R, выполните следующие действия.
- Открыв проект, нажмите кнопку > R файла>".
- Нажмите кнопку " Сохранить файл > как".
- Присвойте файлу имя и нажмите кнопку "Сохранить".
Чтобы подключиться к удаленному кластеру Azure Databricks или хранилищу SQL через ODBC для R, выполните следующие действия.
Получите значения пути узла сервера, порта и HTTP для удаленного кластера или хранилища SQL. Для кластера эти значения находятся на вкладке JDBC/ODBC расширенных параметров. Для хранилища SQL эти значения находятся на вкладке сведений о подключении.
Получите личный маркер доступа Azure Databricks.
Примечание.
В качестве рекомендации по обеспечению безопасности при проверке подлинности с помощью автоматизированных средств, систем, сценариев и приложений Databricks рекомендуется использовать личные маркеры доступа, принадлежащие субъектам-службам, а не пользователям рабочей области. Сведения о создании маркеров для субъектов-служб см. в разделе "Управление маркерами" для субъекта-службы.
Установите и настройте драйвер ODBC Databricks для Windows, macOS или Linux на основе операционной системы локального компьютера.
Настройте имя источника данных ODBC (DSN) в удаленном кластере или хранилище SQL для Windows, macOS или Linux на основе операционной системы локального компьютера.
В консоли RStudio (просмотр перемещения фокуса >) установите пакеты odbc и DBI из 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" )
Вернитесь в скрипт R (просмотр > фокуса на источник), загрузите установленные
odbc
иDBI
пакеты:library(odbc) library(DBI)
Вызовите версию ODBC функции dbConnect в пакете, указав
DBI
драйвер вodbc
odbc
пакете, а также имя DSN ODBC, созданное, например ODBC DSNDatabricks
.conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Вызовите операцию через DSN ODBC, например
SELECT
инструкцию с помощью функции dbGetQuery вDBI
пакете, указав имя переменной подключения иSELECT
сам оператор, например из таблицы с именемdiamonds
default
схемы (базы данных):print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Полный скрипт R выглядит следующим образом:
library(odbc)
library(DBI)
conn = dbConnect(
drv = odbc(),
dsn = "Databricks"
)
print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Чтобы запустить скрипт, в исходном представлении нажмите кнопку "Источник". Результаты предыдущего скрипта R приведены следующим образом:
_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
Подключение к серверу RStudio с размещением Databricks
Внимание
Сервер RStudio, размещенный в Databricks, устарел и доступен только в Databricks Runtime версии 15.4 и ниже. Дополнительные сведения см. в разделе об устаревании RStudio Server.
Используйте веб-браузер для входа в рабочую область Azure Databricks, а затем подключитесь к вычислительным ресурсам Azure Databricks, на котором установлен RStudio Server в этой рабочей области.
Дополнительные сведения см. в разделе "Подключение к серверу RStudio с размещением Databricks"
Архитектура интеграции RStudio
При использовании RStudio Server на Azure Databricks управляющая программа RStudio Server запускается на узле драйвера кластера Azure Databricks. Веб-интерфейс RStudio доступен через веб-приложение Azure Databricks, что означает, что не нужно вносить какие-либо изменения в конфигурацию сети кластера. На этой диаграмме показана архитектура компонента интеграции RStudio.
Предупреждение
Azure Databricks использует прокси-сервер для веб-службы RStudio через порт 8787 драйвера Spark кластера. Этот веб-прокси предназначен для использования только с RStudio. При запуске других веб-служб через порт 8787 можно подвергнуть своих пользователей потенциальным уязвимостям безопасности. Ни Databricks, ни Microsoft не несут ответственности за какие-либо проблемы, возникающие в результате установки неподдерживаемого программного обеспечения в кластере.
Требования
Кластер должен быть кластером всех целей.
Для этого кластера необходимо иметь разрешение CAN ATTACH TO. Это разрешение может предоставить администратор кластера. См. статью "Разрешения вычислений".
В кластере не должно быть включено управление доступом к таблицам, автоматическое завершение или передача учетных данных.
Кластер не должен использовать режим общегодоступа.
В кластере не должно быть задано значение
spark.databricks.pyspark.enableProcessIsolation
конфигурацииtrue
Spark.Для использования выпуска Pro необходимо иметь лицензию RStudio Server с плавающей запятой Pro.
Примечание.
Хотя кластер может использовать режим доступа, поддерживающий каталог Unity, нельзя использовать RStudio Server из этого кластера для доступа к данным в каталоге Unity.
Начало работы: RStudio Server OS Edition
RStudio Server Open Source Edition предварительно установлен в кластерах Azure Databricks, использующих Databricks Runtime для Машинное обучение (Databricks Runtime ML).
Чтобы открыть RStudio Server OS Edition в кластере, сделайте следующее:
Откройте страницу сведений о кластере.
Запустите кластер и перейдите на вкладку "Приложения" :
На вкладке "Приложения" нажмите кнопку "Настройка RStudio ". При этом создается одноразовый пароль. Щелкните ссылку Показать, чтобы отобразить и скопировать пароль.
Щелкните ссылку Open RStudio , чтобы открыть пользовательский интерфейс на новой вкладке. Введите имя пользователя и пароль в форме входа и войдите.
Из пользовательского интерфейса RStudio можно импортировать пакет
SparkR
и настроить сеансSparkR
для запуска заданий Spark в вашем кластере.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)
Также можно прикрепить пакет sparklyr и настроить подключение к 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 Workbench
В этом разделе показано, как настроить и начать работу с RStudio Workbench (ранее RStudio Server Pro) в кластере Azure Databricks. В зависимости от вашей лицензии RStudio Workbench может включать RStudio Server Pro.
Настройка сервера лицензирования RStudio
Чтобы использовать RStudio Workbench в Azure Databricks, необходимо преобразовать лицензию Pro в плавающую лицензию. Для получения помощи обратитесь в help@rstudio.com. После преобразования лицензии необходимо настроить сервер лицензирования для RStudio Workbench.
Для настройки сервера лицензирования выполните следующие действия.
- Запустите небольшой экземпляр в сети поставщика облачных служб; управляющая программа сервера лицензирования занимает немного места.
- Загрузите и установите соответствующую версию сервера лицензирования RStudio в свой экземпляр и запустите службу. Подробные инструкции см. в руководстве администратора RStudio Workbench.
- Убедитесь, что порт сервера лицензирования открыт для экземпляров Azure Databricks.
Установка RStudio Workbench
Чтобы настроить RStudio Workbench в кластере Azure Databricks, необходимо создать скрипт инициализации для установки бинарного пакета RStudio Workbench и настроить его для использования вашего сервера лицензирования для аренды лицензий.
Примечание.
Если вы планируете установить RStudio Workbench в версии среды выполнения Databricks, которая уже включает пакет RStudio Server Open Source Edition, необходимо сначала удалить этот пакет для успешной установки.
Ниже приведен пример .sh
файла, который можно хранить в качестве скрипта инициализации в расположении, например в домашнем каталоге в качестве файла рабочей области, тома каталога Unity или в хранилище объектов. Дополнительные сведения см. в разделе Скрипты инициализации в области кластера. Сценарий также выполняет дополнительные настройки проверки подлинности, которые упрощают интеграцию с Azure Databricks.
Предупреждение
Скрипты инициализации кластера в DBFS являются конечными. Хранение скриптов инициализации в DBFS существует в некоторых рабочих областях для поддержки устаревших рабочих нагрузок и не рекомендуется. Необходимо перенести все скрипты инициализации, хранящиеся в DBFS. Инструкции по миграции см. в разделе "Миграция сценариев инициализации" из 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
- Замените
<domain>
на URL-адрес Azure Databricks, а<license-server-url>
— на URL-адрес вашего сервера с плавающей лицензией. - Сохраните этот
.sh
файл в качестве скрипта инициализации в расположении, например в домашнем каталоге в качестве файла рабочей области, тома каталога Unity или в хранилище объектов. Дополнительные сведения см. в разделе Скрипты инициализации в области кластера. - Перед запуском кластера добавьте этот
.sh
файл в качестве скрипта инициализации из связанного расположения. Инструкции см. в сценариях инициализации в области кластера. - Запустите кластер.
Использование RStudio Server Pro
Откройте страницу сведений о кластере.
Запустите кластер и перейдите на вкладку "Приложения" :
На вкладке "Приложения" нажмите кнопку "Настройка RStudio ".
Одноразовый пароль не требуется. Щелкните ссылку Открыть пользовательский интерфейс RStudio, и откроется сеанс RStudio Pro, прошедший проверку подлинности.
Из пользовательского интерфейса RStudio можно подключить пакет
SparkR
и настроить сеансSparkR
для запуска заданий Spark в вашем кластере.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)
Также можно прикрепить пакет sparklyr и настроить подключение к 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
Какова разница между RStudio Server Open Source Edition и RStudio Workbench?
RStudio Workbench поддерживает широкий спектр корпоративных функций, недоступных в Выпуске Open Source. Сравнение функций можно просмотреть на веб-сайте RStudio.
Кроме того, RStudio Server Open Source Edition распространяется в рамках общедоступной лицензии GNU Affero (AGPL), в то время как версия Pro поставляется с коммерческой лицензией для организаций, которые не могут использовать программное обеспечение AGPL.
Наконец, RStudio Workbench поставляется с профессиональной и корпоративной поддержкой RStudio, PBC, а RStudio Server Open Source Edition не поддерживается.
Могу ли я использовать свою лицензию RStudio Workbench/RStudio Server Pro в Azure Databricks?
Да, если у вас уже есть лицензия Pro или Enterprise для RStudio Server, вы можете использовать эту лицензию на Azure Databricks. См. статью "Начало работы: RStudio Workbench", чтобы узнать, как настроить RStudio Workbench в Azure Databricks.
Где работает RStudio Server? Нужно ли управлять какими-либо дополнительными службами/серверами?
Как видно на схеме в архитектуре интеграции RStudio, управляющая программа RStudio Server работает на узле драйвера (главном) вашего кластера Azure Databricks. При использовании RStudio Server Open Source Edition вам не нужно запускать дополнительные серверы и службы. Но для RStudio Workbench необходимо управлять отдельным экземпляром, на котором запущен сервер лицензирования RStudio.
Можно ли использовать RStudio Server в стандартном кластере?
Примечание.
В этой статье описан пользовательский интерфейс устаревших кластеров. Сведения о новом пользовательском интерфейсе кластеров (в предварительной версии), включая изменения терминологии для режимов доступа к кластеру, см . в справочнике по конфигурации вычислений. Сравнение новых и устаревших типов кластеров см. в разделе "Изменения пользовательского интерфейса кластеров" и режимы доступа к кластеру.
Да, вы можете.
Можно ли использовать RStudio Server в кластере с автоматическим завершением?
Нет, нельзя использовать RStudio, когда включено автоматическое завершение. При автоматическом завершении может произойти очистка несохраненных пользовательских сценариев и данных внутри сеанса RStudio. Чтобы защитить пользователей от этого сценария непреднамеренной потери данных, RStudio по умолчанию отключен в таких кластерах.
Клиентам, которым требуется очистка ресурсов кластера, когда они не используются, Databricks рекомендует использовать программные интерфейсы кластеров для очистки кластеров RStudio по расписанию.
Как сохранить свою работу в RStudio?
Настоятельно рекомендуется сохранить вашу работу, используя систему контроля версий от RStudio. RStudio обладает отличной поддержкой различных систем контроля версий и позволяет вам регистрировать проекты и управлять ими. Если код не сохраняется с помощью одного из следующих методов, вы рискуете потерять работу, если администратор рабочей области перезагрузится или завершает кластер.
Одним из способов является сохранение файлов (кода или данных) в dbFS?. Например, если сохранить файл под /dbfs/
, файлы не удалятся при остановке или перезапуске кластера.
Другой способ — сохранить записную книжку R в локальной файловой системе, выполнив ее экспорт как Rmarkdown
, а затем импорт файла в экземпляр RStudio. Дополнительные сведения см. в блоге о совместном использовании записных книжек R с помощью RMarkdown.
Как начать сеанс SparkR
?
SparkR
содержится в Databricks Runtime, но его необходимо загрузить в RStudio. Выполните следующий код в RStudio, чтобы инициализировать сеанс SparkR
.
library(SparkR)
sparkR.session()
Если при импорте пакета SparkR
возникла ошибка, запустите .libPaths()
и убедитесь, что /home/ubuntu/databricks/spark/R/lib
включен в результат.
Если он не включен, проверьте содержимое /usr/lib/R/etc/Rprofile.site
. Укажите /home/ubuntu/databricks/spark/R/lib/SparkR
в драйвере, чтобы убедиться, что пакет SparkR
установлен.
Как начать сеанс sparklyr
?
Пакет sparklyr
должен быть установлен в кластере. Установку пакета sparklyr
можно выполнить одним из следующих способов.
- Как библиотека в Azure Databricks
- Команда
install.packages()
- Пользовательский интерфейс управления пакетами RStudio
library(sparklyr)
sc <- spark_connect(method = “databricks”)
Как RStudio интегрируется с записными книжками Azure Databricks R?
Можно перемещать свою работу между записными книжками и RStudio с помощью контроля версий.
Что такое рабочий каталог?
При запуске проекта в RStudio вы выбираете рабочий каталог. По умолчанию это корневой каталог в контейнере драйвера (главном), где работает RStudio Server. По желанию можно изменить этот каталог.
Можно ли запускать приложения Shiny из RStudio на Azure Databricks?
Да, можно разрабатывать и просматривать приложения Shiny внутри RStudio Server на Databricks.
Не работает терминал или git внутри RStudio на Azure Databricks. Как можно устранить эту проблему?
Убедитесь, что отключены веб-сокеты. В RStudio Server Open Source Edition это можно сделать из пользовательского интерфейса.
В RStudio Server Pro можно добавить allow-terminal-websockets=0
к /etc/rstudio/rsession.conf
, чтобы отключить веб-сокеты для всех пользователей.
Я не вижу вкладку "Приложения" в сведениях о кластере.
Эта функция доступна не для всех клиентов. Вы должны быть в плане "Премиум".