SuperAPI AI 工具集

azure-compute-batch-java

部署与运维

查看项目

更新于 10-16 02:03

技能介绍

用途

Azure Batch SDK for Java 是用于在 Azure 上运行大规模并行和高性能计算(HPC)批处理作业的客户端库。它面向需要在云端调度大量计算任务的 Java 开发者,通过池、作业、任务和计算节点等抽象来组织和管理批处理工作负载。

主要能力

该 SDK 覆盖批处理的核心资源操作:

  • 池(Pool):创建、获取、列出、调整大小、启用自动缩放和删除计算节点池。
  • 作业(Job):创建、获取、列出、查询任务计数、终止和删除作业。
  • 任务(Task):创建单个任务、带退出条件的任务、任务集合(最多 100 个)以及不限数量的批量任务;获取任务、列出任务、读取任务输出文件和终止任务。
  • 节点(Node):列出节点、重启节点、获取远程登录设置。
  • 作业计划(Job Schedule):创建和获取按周期重复创建作业的计划。

使用方式

通过 Maven 引入依赖:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-compute-batch</artifactId>
    <version>1.0.0-beta.5</version>
</dependency>

前置条件包括 Azure Batch 账户、配置了计算节点的池以及 Azure 订阅。可通过环境变量配置端点、账户名和访问密钥:

AZURE_BATCH_ENDPOINT=https://<account>.<region>.batch.azure.com
AZURE_BATCH_ACCOUNT=<account-name>
AZURE_BATCH_ACCESS_KEY=<account-key>

客户端创建支持两种认证方式。推荐使用 Microsoft Entra ID:

BatchClient batchClient = new BatchClientBuilder()
    .credential(new DefaultAzureCredentialBuilder().build())
    .endpoint(System.getenv("AZURE_BATCH_ENDPOINT"))
    .buildClient();

也可构建异步客户端 BatchAsyncClient,或使用共享密钥凭据 AzureNamedKeyCredential。

适用场景

适用于需要在 Azure 上执行大规模并行计算、HPC 批处理作业的 Java 应用,例如批量运行命令或脚本、按计划周期性提交作业、根据负载动态调整计算节点规模等。

限制

资料中给出的最佳实践提示:优先使用 Entra ID 认证;池的管理建议使用管理 SDK(azure-resourcemanager-batch 支持托管身份);批量创建任务时使用 createTaskCollection 或 createTasks;池调整大小和删除等操作属于长时间运行操作(LRO),需正确处理;使用 getJobTaskCounts 监控任务进度;配置 maxWallClockTime 和 maxTaskRetryCount 约束;对容错型工作负载可使用低优先级节点以节省成本;启用自动缩放以根据工作负载动态调整池大小。

资料同时说明:仅当任务明确匹配上述范围时才应使用该技能;不应将输出视为环境特定验证、测试或专家评审的替代;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。

参考链接

  • Maven 包:https://central.sonatype.com/artifact/com.azure/azure-compute-batch
  • GitHub:https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/batch/azure-compute-batch
  • API 文档:https://learn.microsoft.com/java/api/com.azure.compute.batch
  • 产品文档:https://learn.microsoft.com/azure/batch/
  • REST API:https://learn.microsoft.com/rest/api/batchservice/
  • 示例:https://github.com/azure/azure-batch-samples