Azure Batch SDK for Java。运行大规模并行和HPC批处理作业包括池、作业、任务和计算节点。技能概述azure-compute-batch-java 技能提供了Azure Batch SDK for Java的完整使用指南。Azure Batch是一项托管服务用于在Azure中运行大规模并行和高性能计算HPC批处理作业。该技能帮助开发者管理池、作业、任务和计算节点实现高效的批处理计算。下载地址agentic-awesome-skills/skills/azure-compute-batch-java at main · sickn33/agentic-awesome-skills · GitHub主要功能池管理: 创建、调整、删除和管理计算节点池作业管理: 创建、监控和终止批处理作业任务管理: 创建、监控和管理计算任务节点操作: 管理计算节点包括重启和远程登录作业调度: 创建和管理定期运行的作业计划自动缩放: 根据工作负载动态调整池大小触发条件在以下情况下应该调用此技能:需要运行大规模并行批处理作业实现高性能计算HPC工作负载管理Azure Batch池和计算节点创建和调度批处理任务需要动态缩放计算资源核心概念概念描述Pool运行任务的计算节点集合Job任务的逻辑分组Task计算单元命令/脚本Node执行任务的虚拟机Job Schedule定期作业创建安装方法dependencygroupIdcom.azure/groupIdartifactIdazure-compute-batch/artifactIdversion1.0.0-beta.5/version/dependency使用示例示例1: 创建客户端import com.azure.compute.batch.BatchClient;import com.azure.compute.batch.BatchClientBuilder;import com.azure.identity.DefaultAzureCredentialBuilder;// 使用Microsoft Entra ID推荐BatchClient batchClient new BatchClientBuilder().credential(new DefaultAzureCredentialBuilder().build()).endpoint(System.getenv(AZURE_BATCH_ENDPOINT)).buildClient();// 使用共享密钥凭据import com.azure.core.credential.AzureNamedKeyCredential;String accountName System.getenv(AZURE_BATCH_ACCOUNT);String accountKey System.getenv(AZURE_BATCH_ACCESS_KEY);AzureNamedKeyCredential sharedKeyCreds new AzureNamedKeyCredential(accountName, accountKey);BatchClient batchClient new BatchClientBuilder().credential(sharedKeyCreds).endpoint(System.getenv(AZURE_BATCH_ENDPOINT)).buildClient();示例2: 创建池import com.azure.compute.batch.models.*;batchClient.createPool(new BatchPoolCreateParameters(myPoolId, STANDARD_DC2s_V2).setVirtualMachineConfiguration(new VirtualMachineConfiguration(new BatchVmImageReference().setPublisher(Canonical).setOffer(UbuntuServer).setSku(22_04-lts).setVersion(latest),batch.node.ubuntu 22.04)).setTargetDedicatedNodes(2).setTargetLowPriorityNodes(0),null);示例3: 创建作业和任务// 创建作业batchClient.createJob(new BatchJobCreateParameters(myJobId, new BatchPoolInfo().setPoolId(myPoolId)).setPriority(100).setConstraints(new BatchJobConstraints().setMaxWallClockTime(Duration.ofHours(24)).setMaxTaskRetryCount(3)),null);// 创建单个任务BatchTaskCreateParameters task new BatchTaskCreateParameters(task1, echo Hello World);batchClient.createTask(myJobId, task);// 创建多个任务ListBatchTaskCreateParameters taskList Arrays.asList(new BatchTaskCreateParameters(task1, echo Task 1),new BatchTaskCreateParameters(task2, echo Task 2),new BatchTaskCreateParameters(task3, echo Task 3));BatchTaskGroup taskGroup new BatchTaskGroup(taskList);BatchCreateTaskCollectionResult result batchClient.createTaskCollection(myJobId, taskGroup);示例4: 监控任务// 获取任务计数BatchTaskCountsResult counts batchClient.getJobTaskCounts(myJobId);System.out.println(Active: counts.getTaskCounts().getActive());System.out.println(Running: counts.getTaskCounts().getRunning());System.out.println(Completed: counts.getTaskCounts().getCompleted());// 获取任务输出import com.azure.core.util.BinaryData;import java.nio.charset.StandardCharsets;BinaryData stdout batchClient.getTaskFile(myJobId, task1, stdout.txt);System.out.println(new String(stdout.toBytes(), StandardCharsets.UTF_8));示例5: 自动缩放BatchPoolEnableAutoScaleParameters autoScaleParams new BatchPoolEnableAutoScaleParameters().setAutoScaleEvaluationInterval(Duration.ofMinutes(5)).setAutoScaleFormula($TargetDedicatedNodes min(10, $PendingTasks.GetSample(TimeInterval_Minute * 5)););batchClient.enablePoolAutoScale(myPoolId, autoScaleParams);最佳实践使用Entra ID: 优先于共享密钥进行身份验证使用管理SDK管理池: azure-resourcemanager-batch支持托管标识批量创建任务: 使用createTaskCollection或createTasks创建多个任务正确处理LRO: 池调整大小、删除操作是长时间运行的监控任务计数: 使用getJobTaskCounts跟踪进度设置约束: 配置maxWallClockTime和maxTaskRetryCount使用低优先级节点: 为容错工作负载节省成本启用自动缩放: 根据工作负载动态调整池大小环境变量AZURE_BATCH_ENDPOINThttps://account.region.batch.azure.com AZURE_BATCH_ACCOUNTaccount-name AZURE_BATCH_ACCESS_KEYaccount-key相关资源Maven包: Maven Central: com.azure:azure-compute-batchGitHub: azure-sdk-for-java/sdk/batch/azure-compute-batch at main · Azure/azure-sdk-for-java · GitHubAPI文档: com.azure.compute.batch Package | Microsoft Learn产品文档: https://learn.microsoft.com/azure/batch/REST API: https://learn.microsoft.com/rest/api/batchservice/示例: https://github.com/azure/azure-batch-samples限制说明仅当任务明确符合上述范围时使用此技能不要将输出视为环境特定验证、测试或专家审查的替代品如果缺少所需的输入、权限、安全边界或成功标准请停止并寻求澄清
企业数字化 ERP 产品动态
相关推荐
WAIC 2026:AI 长出身体,开始为结果负责! 突发:WAIC 2026 盛大召开7 月 17 日至 20 日,2026 世界人工智能大会暨人工智能全球治理高级别会议主论坛(WAIC 2026)正式召开。作为一年一度的 AI 行业盛会,今年大会依然聚集了国内外大模型公司、AI 应用和硬件厂商&am… · 2026/9/16 21:17:33
AI编程助手OpenClaw如何革新传统开发模式 1. 为什么说"手搓代码"正在被时代淘汰?上周调试一个简单的文件读写接口时,我突然意识到自己已经三个月没有完整手写过业务逻辑了。从自动生成CRUD代码的IDE插件,到能直接对话实现功能的AI编程助手,再到OpenClaw这类能自… · 2026/9/29 20:02:44
鸿蒙 ArkTS 实战:宠物喂食日志的喂食记录、饮水量、时间生成与累计克数 鸿蒙 ArkTS 实战:宠物喂食日志的喂食记录、饮水量、时间生成与累计克数
前言
宠物喂食日志是一个基于 ArkTS 和 ArkUI 声明式 UI 的鸿蒙单页项目,入口文件位于 entry/src/main/ets/pages/Index.ets。 本文围绕 宠物喂食记录 场景,拆解当前页… · 2026/9/21 14:03:21
Spingboot启动预热的实现 启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/29 6:52:37
学Java别走弯路,这5个方向最吃香 学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/29 4:13:53
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/29 0:45:26
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/29 13:54:52
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/29 8:55:58