RStudio on Databricks
注
この機能は、このリリースの時点では Databricks on Google Cloud では使用できません。
R 用の一般的な統合開発環境 (IDE) であるRStudioを使用して、 Databricksワークスペース内でDatabricksコンピュートリソースに接続できます。 RStudio Desktopを使用して、ローカル開発マシンからDatabricksクラスターまたはSQL Serverに接続します。 また、Web ブラウザーを使用して Databricks ワークスペースにサインインし、そのワークスペース内でRStudio Serverがインストールされている Databricks クラスターに接続することもできます。
RStudio デスクトップを使用して接続する
RStudio デスクトップ を使用して、ローカル開発コンピューターからリモート Databricks クラスターまたは SQLウェアハウスに接続します。このシナリオで接続するには、ODBC 接続を使用し、このセクションで説明する R の ODBC パッケージ関数を呼び出します。
注
Databricks Connect も使用しない限り、この RStudio Desktop シナリオでは、 SparkR や sparklyr などのパッケージを使用できません。RStudio Desktop を使用する代わりに、Web ブラウザーを使用して Databricks ワークスペースにサインインし、そのワークスペースに RStudio Server がインストールされている Databricks クラスターに接続できます。
ローカル開発マシンで RStudio デスクトップをセットアップするには:
RStudio デスクトップを起動します。
(オプション)RStudio プロジェクトを作成するには:
RStudio デスクトップを起動します。
[ ファイル] > [新しいプロジェクト] をクリックします。
[ 新しいディレクトリ] > [新しいプロジェクト] を選択します。
プロジェクトの新しいディレクトリを選択し、[ プロジェクトの作成] をクリックします。
R スクリプトを作成するには:
プロジェクトを開いた状態で、[ ファイル] > [新しいファイル > R スクリプト] をクリックします。
[ ファイル] > [名前を付けて保存] をクリックします。
ファイルに名前を付け、[ 保存] をクリックします。
リモート Databricks クラスターまたは SQL ウェアハウスに ODBC for R を使用して接続するには、次のようにします。
リモート クラスター または SQLウェアハウス の [ サーバーのホスト名 ]、[ ポート ]、および [HTTP パス ] の値を取得します。クラスターの場合、これらの値は [詳細オプション] の [JDBC/ODBC] タブにあります。SQLウェアハウスの場合、これらの値は「 接続の詳細 」タブにあります。
Databricks の個人用アクセストークンを取得します。
注
セキュリティのベスト プラクティスとして、自動化されたツール、システム、スクリプト、アプリを使用して認証する場合、 Databricksでは、ワークスペース ユーザーではなく、サービス プリンシパルに属する個人のアクセス トークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、 「サービスプリンシパルのトークンの管理」を参照してください。
ローカル コンピューターのオペレーティング システムに基づいて、 Windows、 macOS、または Linux 用の Databricks ODBC ドライバーをインストールして構成します。
ローカルマシンのオペレーティングシステムに基づいて、リモートクラスタまたは Windows、 macOS、または Linux用のSQLウェアハウスにODBCデータソース名(DSN)を設定します。
RStudio コンソール (表示>コンソールへのフォーカスの移動) から、 CRAN から ODBC および DBI パッケージをインストールします。
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)
DBI
パッケージ内の ODBC バージョンの dbConnect 関数を呼び出し、odbc
パッケージ内のodbc
ドライバーと、作成した ODBC DSN (たとえば、ODBC DSNDatabricks
) を指定します。conn = dbConnect( drv = odbc(), dsn = "Databricks" )
ODBC DSN を使用して操作を呼び出します。たとえば、
DBI
パッケージの dbGetQuery 関数を使用してSELECT
ステートメントを呼び出し、接続変数の名前とSELECT
ステートメント自体を指定します (たとえば、default
という名前のスキーマ (データベース) 内のdiamonds
という名前のテーブルから) を指定します。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
Databricks でホストされている RStudio サーバーに接続する
重要
Databricks でホストされる RStudio サーバーは 非推奨 であり、Databricks Runtime バージョン 15.4 以前でのみ使用できます。 詳細については、「 Hosted RStudio Server の廃止」を参照してください。
WebDatabricks ブラウザーを使用して ワークスペースにサインインし、そのワークスペースにDatabricksRStudio Server がインストールされている コンピュートに接続します 。
RStudio 統合アーキテクチャ
Databricksで RStudio サーバーを使用すると、RStudio サーバー デーモンは Databricks クラスターのドライバー ノードで実行されます。RStudio Web UI は Databricks Web アプリを介してプロキシされるため、クラスター ネットワーク構成を変更する必要はありません。 この図は、RStudio 統合コンポーネントのアーキテクチャを示しています。
警告
Databricks は、クラスターの Spark ドライバーのポート 8787 から RStudio Web サービスをプロキシします。 この Web プロキシは、RStudio でのみ使用することを目的としています。 ポート 8787 で他の Web サービスを起動すると、ユーザーが潜在的なセキュリティエクスプロイトにさらされる可能性があります。 Databricks は、サポートされていないソフトウェアをクラスターにインストールすることに起因する問題については責任を負いません。
要件
クラスターは汎用クラスターである必要があります。
そのクラスターに対するCan Attach To権限が必要です。 クラスター管理者は、この権限をユーザーに付与できます。 「コンピュート権限」を参照してください。
クラスターでは、 テーブルアクセスコントロール または 自動終了 を有効にし てはなりません 。
クラスターでは、 共有 アクセス モード を使用し ないでください 。
クラスターの Spark 構成
spark.databricks.pyspark.enableProcessIsolation
がtrue
に設定 されていない必要があります 。Pro エディションを使用するには、RStudio Server フローティング Pro ライセンスが必要です。
注
クラスターは Unity Catalog をサポートするアクセス モードを使用できますが、そのクラスターから RStudio Server を使用して Unity Catalog 内のデータにアクセスすることはできません。
はじめに: RStudio Server OS Edition
RStudio Server オープンソース エディションは、Databricks Runtime for Machine Learning (Databricks Runtime 機械学習) を使用する Databricks クラスターにプレインストールされています。
クラスターで RStudio Server OS Edition を開くには、次の操作を行います。
クラスターの詳細ページを開きます。
クラスターを起動し、 [ アプリ ] タブをクリックします。
[アプリ] タブで、[RStudio のセットアップ] ボタンをクリックします。これにより、ワンタイムパスワードが生成されます。 表示リンクをクリックして 表示 し、パスワードをコピーします。
[ RStudio を開く ] リンクをクリックして、UI を新しいタブで開きます。 ログインフォームにユーザー名とパスワードを入力し、サインインします。
RStudio UI から、
SparkR
パッケージをインポートし、クラスターで Spark ジョブを起動するためのSparkR
セッションを設定できます。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 ワークベンチ
このセクションでは、Databricks クラスターで RStudio Workbench (旧称 RStudio Server Pro) をセットアップして使用を開始する方法について説明します。 ライセンスによっては、RStudio Workbench に RStudio Server Pro が含まれる場合があります。
RStudio ライセンス サーバーをセットアップする
Databricks で RStudio Workbench を使用するには、Pro ライセンスを フローティング ライセンスに変換する必要があります。 サポートが必要な場合は、 help@rstudio までお問い合わせください。com. ライセンスを変換するときは、RStudio ワークベンチの ライセンス サーバー を設定する必要があります。
ライセンスサーバーを設定するには:
クラウドプロバイダーネットワーク上で小さなインスタンスを起動します。ライセンスサーバーデーモンは非常に軽量です。
対応するバージョンの RStudio ライセンス サーバーをインスタンスにダウンロードしてインストールし、サービスを開始します。 詳細な手順については、「 RStudio ワークベンチ管理者ガイド」を参照してください。
ライセンス サーバー ポートが Databricks インスタンスに対して開かれていることを確認します。
RStudio ワークベンチをインストールする
Databricks クラスター上に RStudio Workbench をセットアップするには、RStudio Workbench バイナリ パッケージをインストールし、ライセンス リースにライセンス サーバーを使用するように構成するための init スクリプトを作成する必要があります。
注
RStudio Server オープンソース エディション パッケージが既に含まれている Databricks Runtime バージョンに RStudio Workbench をインストールする場合は、インストールを成功させるために、まずそのパッケージをアンインストールする必要があります。
以下は、ワークスペース ファイルとしてホーム ディレクトリ、 Unity Catalogボリューム、オブジェクト ストレージなどの場所に init スクリプトとして保存できる .sh
ファイルの例です。 詳細については、 「クラスター スコープの init スクリプトの使用」を参照してください。 このスクリプトは、Databricks との統合を合理化する追加の認証構成も実行します。
警告
DBFS 上のクラスタースコープの init スクリプトはサポートが終了しました。 DBFS に init スクリプトを保存することは、レガシー ワークロードをサポートするために一部のワークスペースに存在しますが、推奨されません。 DBFS に保存されているすべての init スクリプトを移行する必要があります。 移行手順については、 「DBFS からの init スクリプトの移行」を参照してください。
#!/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>
を Databricks の URL に置き換え、<license-server-url>
をフローティング ライセンス サーバーの URL に置き換えます。この
.sh
ファイルを init スクリプトとして、ワークスペース ファイルとしてホーム ディレクトリ、 Unity Catalogボリューム、オブジェクト ストレージなどの場所に保存します。 詳細については、 「クラスター スコープの init スクリプトの使用」を参照してください。クラスターを起動する前に、この
.sh
ファイルを関連する場所から init スクリプトとして追加します。 手順については、 「クラスタースコープの init スクリプトの使用」を参照してください。クラスターを起動します。
RStudio Server Proを使用する
クラスターの詳細ページを開きます。
クラスターを起動し、 [ アプリ ] タブをクリックします。
[ アプリ ] タブで、[ RStudio のセットアップ ] ボタンをクリックします。
ワンタイムパスワードは必要ありません。 [ RStudio UI を開く ] リンクをクリックすると、認証された RStudio Pro セッションが開きます。
RStudio UI から、
SparkR
パッケージをアタッチし、クラスターで Spark ジョブを起動するためのSparkR
セッションを設定できます。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 Server FAQ
RStudio Server オープンソース Edition と RStudio Workbench の違いは何ですか?
RStudio ワークベンチは、オープンソースエディションでは利用できない幅広いエンタープライズ機能をサポートしています。 機能の比較は 、RStudioのウェブサイトで見ることができます。
さらに、RStudio Server オープンソース Edition は GNU Affero General Public License (AGPL) の下で配布されていますが、Pro バージョンには AGPL ソフトウェアを使用できない組織向けの商用ライセンスが付属しています。
最後に、RStudio Workbench には RStudio、PBC によるプロフェッショナルおよびエンタープライズ サポートが付属していますが、RStudio Server オープンソース エディションにはサポートがありません。
RStudio Workbench / RStudio Server Pro ライセンスを Databricks で使用できますか?
はい、RStudio サーバーのプロ ライセンスまたはエンタープライズ ライセンスを既にお持ちの場合は、そのライセンスを Databricks で使用できます。 Databricks で RStudio ワークベンチを設定する方法については、「 はじめに: RStudio ワークベンチ 」を参照してください。
RStudio サーバーはどこで実行されますか? 追加のサービス/サーバーを管理する必要がありますか?
RStudio 統合アーキテクチャの図からわかるように、RStudio サーバー デーモンは Databricks クラスターのドライバー (マスター) ノードで実行されます。RStudio Server オープンソース エディションでは、追加のサーバー/サービスを実行する必要はありません。 ただし、RStudio ワークベンチの場合は、RStudio ライセンス サーバーを実行する別のインスタンスを管理する必要があります。
自動終了機能を備えたクラスターで RStudio サーバーを使用できますか?
いいえ、自動終了が有効になっている場合は RStudio を使用できません。 自動終了では、RStudio セッション内の保存されていないユーザー スクリプトとデータが消去される可能性があります。 この意図しないデータ損失のシナリオからユーザーを保護するために、このようなクラスターでは RStudio はデフォルトで無効になっています。
使用されていないときにクラスター リソースをクリーンアップする必要がある顧客の場合、 Databricks では、 クラスター APIs を使用して、スケジュールに基づいて RStudio クラスターをクリーンアップすることをお勧めします。
RStudioで作業を維持するにはどうすればよいですか?
RStudio のバージョン管理システムを使用して作業を保持することを強くお勧めします。 RStudio は、さまざまなバージョン管理システムを強力にサポートしており、プロジェクトをチェックインして管理することができます。 次のいずれかの方法でコードを永続化しないと、ワークスペース管理者がクラスターを再起動または終了すると、作業内容が失われるリスクがあります。
1 つの方法は、ファイル (コードまたはデータ) を[Databricks ファイル システム (DBFS) とは]に保存することです。 たとえば、 /dbfs/
の下にファイルを保存すると、クラスターが終了または再起動されてもファイルは削除されません。
別の方法は、R ノートブックを Rmarkdown
としてエクスポートしてローカル ファイル システムに保存し、後でファイルを RStudio インスタンスにインポートすることです。 ブログ 「RMarkdown を使用した R ノートブックの共有 」では、ステップ について詳しく説明しています。
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
パッケージをインストールします。
Databricks 図書館として
install.packages()
コマンドRStudio パッケージ管理 UI
library(sparklyr)
sc <- spark_connect(method = “databricks”)
作業ディレクトリとは何ですか?
RStudio でプロジェクトを開始するときは、作業ディレクトリを選択します。 デフォルトは、RStudio サーバーが実行されているドライバー (マスター) コンテナー上のホーム ディレクトリです。 必要に応じて、このディレクトリを変更できます。
私は Databricks上でRStudio内でターミナルやgitを使用することはできません。 どうすれば修正できますか?
Web ソケットが無効になっていることを確認します。 RStudio Server オープンソース エディションでは、UI からこれを行うことができます。
RStudio サーバー プロでは、 /etc/rstudio/rsession.conf
に allow-terminal-websockets=0
を追加して、すべてのユーザーに対して Web ソケットを無効にすることができます。
クラスターの詳細の下に [アプリ] タブが表示されません。
この機能は、一部のお客様にはご利用いただけません。 プレミアムプランをご利用いただく必要があります。