Azure 使用记录

最近在做CDP迁移到Azure 云的任务,鉴于databricks中的job参数只能写死,故需在虚拟机上部署,方便参数的可变。

Azure VM 可以部署脚本,用于启动(触发)​​ Databricks 工作流(Workflow)中的作业(Job)。一旦作业被成功触发,​​实际的计算任务(运行笔记本、JAR文件、Spark作业等)是在你的 Databricks 工作区关联的、配置的云端集群(Databricks集群或Databricks Serverless)上执行的,而不是在Azure VM上执行的。

价值:​​

  1. 自动化与集成​​:你可以将 databricks jobs run-now命令(或其他 CLI 命令)集成到你在 Azure VM 上运行的自动化脚本、持续集成/持续部署(CI/CD)管道或其他应用程序中,从而自动触发 Databricks 工作流。

  2. ​​调度替代方案​​:虽然 Databricks 工作流本身有调度器,但有时你可能想从外部系统(如部署在VM上的调度系统、或者事件驱动的脚本)来触发作业。

  3. ​​集中管理​​:在一个点上(比如特定的管理 VM)管理多个 Databricks 作业的启动。

  4. ​​安全与控制​​:Azure VM 可以配置严格的网络安全规则和管理策略。

使用前的关键配置步骤:​​

  1. 安装 Databricks CLI: 确保已在 Azure VM 上成功安装了 Databricks CLI (pip install databricks-cli) 或使用其他安装方法。
  2. 身份验证: 这是最关键的一步。你必须让运行在 VM 上的 Databricks CLI 能够安全地访问你的 Databricks 工作区:
    l 生成访问令牌:
    ①. 登录到你的 Databricks 工作区。
    ②. 转到用户设置 -> 开发人员 -> 访问令牌 -> 生成新令牌
    ③. 记录生成的令牌
    l 配置 CLI:在 Azure VM 的命令行中运行
    databricks configure --token
    系统会依次提示输入:
    ○ Databricks Host:你的工作区 URL,通常是 https://.azuredatabricks.net
    ○ Token:粘贴上面生成的访问令牌。

替代方案​​:对于更安全或自动化的场景(如脚本),可以使用​​服务主体​​身份认证(推荐)或直接将主机/令牌设置为环境变量(DATABRICKS_HOST, DATABRICKS_TOKEN),但要注意安全保护(例如使用 Azure Key Vault)

  1. 触发作业databricks jobs run-now --job-id 。 可以通过 databricks jobs run-now --help查看其他选项,如传递参数。

  2. 监控运行:

○ 使用 databricks runs list --job-id查看该作业的所有运行实例。

○ 使用databricks runs get-output --run-id获取特定运行 ID 的详细输出和日志(注意:获取的是驱动日志摘要和结果,详细任务日志仍需在 Databricks UI 的 Spark UI 或集群驱动日志中查看)

Databricks上部署spark 任务的方法:

点击Create Job 按钮:

Task name 里填写Job name, Parameters 框内配置参数后点击Create 按钮即可。

生成后可在如下界面找到对应Job ID