How to Run Line Commands Using the New Databricks Web Terminal - The Databricks Blogの翻訳です。
ご紹介
バージョン3.25のプラットフォームリリースにおいて、Databricksのウェブターミナルのパブリックプレビューを発表できることを嬉しく思います。クラスターに対して「Can Attach To」アクセス権を持っているユーザーは誰でも、クラスターのドライバーノードでBashコマンドを実行するためにインタラクティブにウェブターミナルを使用することができます。
新たなDatabricksウェブターミナルは、実質的に全てのコマンドライプログラムをサポートする、完全にインタラクティブなシェルを提供します。このターミナルは、Apache Sparkのジョブを実行することを目的としたものではなく、ネイティブライブラリのインストール、パッケージ管理に関する問題のデバッグ、あるいはシンプルにコンテナ内のシステムファイルの編集を行うためのものです。
モチベーション
Databricksのノートブックでは、%shマジックコマンドを通じてシェルコマンドを実行することができます。さらに、いくつかの環境では、クラスターの作成者がクラスターの起動時にSSHキーをセットアップし、クラスターのドライバーコンテナにSSH接続することができます。これらの機能は両方とも、パワーユーザーにとっては制限があるものでした。新たなウェブターミナル機能は、これらの既存の方法よりも便利かつパワフルなものであり、今ではドライバーでシェルコマンドを実行する際の推奨となっています。
我々はお客様から、VimやEmacsのような人気のあるエディターを含むあらゆるコマンドラインツールをサポートする、高度にインタラクティブなシェル環境の要望をいただいています。彼らは、任意のLinuxライブラリをインストールし、ファイルをダウンロードするためのインタラクティブなターミナルセッションを必要としていました。これらを%shマジックコマンドで行うには、不便あるいは不可能でした。
SSHはインタラクティブなシェルを提供しますが、クラスターに鍵を登録したシングルユーザーには制限があるものでした。多くのユーザーがクラスターを共有し、彼らの多くはインタラクティブシェルを活用したいと考えていました。さらに、システム管理者とセキュリティチームは、自身のバーチャルプライベートネットワークでSSHポートを解放することを快く思いませんでした。ウェブターミナルはこれら全ての制限に対応します。ユーザーとして、クラスターのインタラクティブターミナルを使用するために、SSHキーをセットアップする必要はありません。
使ってみる
ウェブターミナルはパブリックプレビュー(AWS|Azure)であり、デフォルトでは無効化されています。ワークスペースの管理者は、AdminコンソールのAdvancedタブからこの機能(AWS|Azure)を有効化することができます。このステップを踏んだ後で、Databricksランタイム7.0以降のクラスターで、ユーザーは「Can Attach To」権限を持っている場合、ウェブターミナルセッションを起動することができます。
クラスターでウェブターミナルを開く方法は2つあります。クラスター詳細ページのAppsタブでweb terminalボタンを押します。
あるいは、ノートブック上のクラスタードロップダウンメニューから「Terminal」ショートカットをクリックします。
クラスターを起動しており、クラスターへのウェブターミナルのアクセスを制限したい場合には、環境変数にDISABLE_WEB_TERMINAL=true
を設定します。また、テーブルACL(AWS|Azure)が有効化されている、あるいはクレディンシャルパススルー(AWS|Azure)を使用しているハイコンカレンシークラスター(AWS|Azure)ではウェブターミナルを使用することはできません。
Databricksにおけるウェブターミナルの使い方の詳細に関してはガイド(AWS|Azure)をご覧ください。
制限、および今後の計画
ウェブターミナルセッションが数分間利用されていない場合にはタイムアウトが起こり、新たなBashプロセスが作成されます。このことは、お使いのアクティブなシェルセッションが失われることになります。これを回避するには、tmuxのようなツールでセッションを管理することをお勧めします。
テーブルACLあるいはクレデンシャルパススルーが有効化されているハイコンカレンシークラスターではウェブターミナルはサポートされません。
ユーザーがDatabricksからログアウトするか、クラスターに対するアクセス権が削除された際、アクティブなウェブターミナルセッションは停止されません。詳細に関してはこれらのセキュリティの検討事項(AWS|Azure)をご覧ください。