在 Azure Databricks Web 终端中运行 Shell 命令

Azure Databricks Web 终端提供了一种方便且高度交互的方式来在命令行接口 (CLI)(包括 Databricks CLI 命令)中运行 shell 命令,从而以编程方式对 Databricks 对象执行操作。 它对于高级用例特别有用,例如对多个文件的批处理操作,现有用户界面 (UI) 可能无法完全支持这些操作。

多个用户可以在一台计算机上使用 Web 终端。

可以使用 Web 终端执行以下操作:

  • 使用 Vim 或 Emacs 快速编辑文件。
  • 使用 htop(群集使用情况)或 nvidia-smi(GPU 使用情况)等命令监视资源使用状况。
  • 运行非 Spark Python 脚本。
  • 使用 shell 命令(如 mvmkdir)执行文件操作。
  • 在计算上安装和管理库。
  • 使用 Databricks CLI 自动执行 Azure Databricks 的各个方面。

要求

警告

Azure Databricks 代理计算的 Spark 驱动程序上端口 7681 中的 Web 终端服务。 此 Web 代理仅用于 Web 终端。 如果计算启动时端口被占用或者存在某种冲突,Web 终端可能无法按预期工作。 如果在端口 7681 上启动了其他 Web 服务,则计算用户可能会面临潜在的安全攻击。 Databricks 和 Microsoft 均不负责因在计算上安装不受支持的软件而导致的任何问题。

  • 默认情况下,针对所有工作区用户禁用 Web 终端。 要启用它,请参阅启用 Web 终端
  • 计算上的可附加到权限。
  • 计算必须使用单用户无隔离共享访问模式

启动 Web 终端

可以从计算详细信息页或笔记本中启动 Web 终端。

从笔记本

要从笔记本启动 Web 终端:

  1. 将笔记本连接到计算。
  2. 在笔记本右侧边栏的底部,点击“打开底部面板”图标在笔记本中打开底部面板
  3. 或者,点击“附加的计算”下拉列表,将鼠标指针悬停在附加的计算上,然后点击“Web 终端”

Web 终端在屏幕底部的面板中打开。 面板右上角的按钮允许:

  • 在新选项卡中打开新的终端会话打开新的终端会话
  • 重新加载终端会话重新加载终端会话
  • 关闭底部面板关闭底部面板。 要重新打开面板,请单击右侧栏底部的重新打开底部面板

从计算详细信息页

要从计算详细信息页启动 Web 终端:

  1. 在工作区的边栏上,单击“计算”。
  2. 在“通用计算”选项卡上,点击计算名称
  3. 点击“开始”以启动计算
  4. 在“应用”选项卡上,点击“Web 终端”

此时会打开一个新选项卡,其中包含 Web 终端 UI 和 Bash 提示符。

使用 Web 终端

在 Web 终端中,可以从计算驱动程序节点容器内的根目录运行命令。

每个用户最多可以打开 100 个活动 Web 终端会话(选项卡)。 空闲的 Web 终端会话可能会超时,Web 终端 Web 应用程序将重新连接,从而生成新的 shell 进程。 如果要保留 Bash 会话,Databricks 建议使用 tmux

运行 Databricks CLI 命令

还可以使用 Web 终端运行 Databricks CLI 命令。 可用的 CLI 始终为最新版本,身份验证基于当前用户。 计算必须满足以下要求:

  • 群集必须安装了 Databricks Runtime 15.0 或更高版本。
  • 不得为专用链接启用工作区。

启动 Web 终端并运行以下命令以输出有关当前用户的信息:

   databricks current-user me

捆绑包命令也可用,可允许直接从 Databricks 工作区的 Web 终端创建和管理Databricks 资产捆绑包。 例如,要使用默认模板创建、部署和运行简单捆绑包:

  1. 从 Web 终端根目录导航到工作区主页并运行bundle init

    cd /Workspace/Users/someone@example.com
    databricks bundle init
    
  2. 接受默认模板提示,然后更改为捆绑包目录并部署它:

    cd my_project
    databricks bundle deploy
    

    可以在 Databricks 工作区 UI 中查看部署的my_project捆绑包。

  3. 最后,在捆绑包中运行默认作业:

    databricks bundle run my_project_job
    

    导航到“作业运行”以查看正在运行的作业

限制

  • Azure Databricks 不支持从 Web 终端运行 Spark 作业。

  • Azure Databricks Web 终端在以下计算类型中不可用:

    • 作业计算
    • 无服务器计算
    • 启动计算时,环境变量设置为 DISABLE_WEB_TERMINAL=true
    • 启动计算时,访问模式设置为“共享”
    • 启动计算时,Spark 配置 spark.databricks.pyspark.enableProcessIsolation 设置为 true
  • 从加载初始页面起,有 12 小时的硬性限制,在此之后,任何连接(即使是活动连接)都将被终止。 可以刷新 Web 终端以重新连接。 Databricks 建议使用 tmux 来保留 shell 会话。

  • ARM 计算资源无法使用 Web 终端访问工作区文件,包括 Git 文件夹中的文件。

  • 启用 Docker 容器服务将禁用 Web 终端。