问题标签 [azure-batch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 如何静默获取用户订阅 Azure Batch 的访问令牌?
我正在做一个项目,我们有服务以用户订阅模式在 Azure Batch 上运行计算(因为我们使用的是自定义图像)。我的代码现在可以完全正常工作,但它需要每次启动都提供用户凭据以登录 Azure Active Directory 应用程序,然后才能创建批处理池等。因为它将作为后台服务运行,所以我需要使用一些提供的用户静默登录,而不会弹出要求用户登录。
我已经在 Azure 中注册了本机应用程序,并设置了它对 Azure Batch 服务的访问权限,创建了 Azure AD 用户,并从中获取了所有 ID 和名称。
这是我现在正在使用的代码。
带有登录弹出窗口的 AquireToken 的经典方式工作正常。我尝试使用 AquireTokenSilent(如代码所示),但我收到关于没有令牌缓存的错误,需要调用 AquireToken。
UserIdentifier 中使用的 ID 是从 Azure Active Directory 用户刀片获取的用户 ID GUID。
有谁知道,如何更新我的代码,以便我能够以指定用户静默登录 Azure Batch,这甚至可能吗?
感谢帮助。
python - 无法在 Azure Batch 节点上加载 R 包
我在使用 Azure Batch Python API 将包加载到我的计算池节点上的 R 时遇到了困难。我使用的代码类似于Azure Batch Python SDK 教程中提供的代码,只是任务更复杂——我希望作业池中的每个节点都执行需要某些包依赖项的 R 脚本。
因此,在下面的启动任务命令中,我让每个节点(Canonical UbuntuServer SKU:16)通过 apt 安装 R 并安装 R 包依赖项(我将 R 包安装添加到启动任务的原因是,即使在创建了一个库之后~/Rpkgs
具有通用权限的目录,install.packages(list_of_packages, lib="~/Rpkgs/", repos="http://cran.r-project.org")
在任务脚本中运行会导致“不可写”错误。)
无论如何,我在 Azure 门户中确认这些包已按预期安装在计算池节点上(您可以在节点文件系统中看到它们位于startup/wd/Rpkgs/
aka ~/Rpkgs/
)。但是,当_R_TASK_SCRIPT
任务成功添加到作业池时,它以非零退出代码终止,因为它无法加载已安装在启动任务中的任何包(例如foreach
,,,iterators
等) optparse
.
更具体地说,它_R_TASK_SCRIPT
包含以下 R 代码并返回以下输出:
代码:
R stderr,stderr.txt
在 Azure Batch 节点上:
R 标准输出,stdout.txt
在 Azure Batch 节点上:
FALSE
上面表示它无法加载 R 包。这是我面临的问题,我想弄清楚原因。
值得注意的是,当我启动一个类似的虚拟机(Canonical UbuntuServer SKU:16)并手动运行相同的安装时,它成功加载了所有包。
提前感谢您的帮助和建议。
azure - Azure 流程编排
我正在寻找有关流程编排的最佳实践的建议。为了提供一些上下文,我有以下任务要编排:
- 扩展 Azure Batch Pool 以提供足够的节点
- 执行调用服务器以检索任务列表的自定义 .Net 代码。这些任务每天都在变化。将这些任务排队到批处理池中。
- 在批处理池上执行每个任务(自定义 .Net 代码)。每个任务都会在 Azure 存储帐户中创建数据。
- 缩小批处理池,因为不再需要它。
- 启动/扩展数据仓库
- 将数据批量导入数据仓库(预计使用 PolyBase 和 BCP 的组合)。
- 聚合数据并将输出生成到 Azure 存储帐户。
- 暂停/缩小数据仓库
我目前正在将数据仓库与运行手册进行比较以执行上述操作。
我发现 Runbook 在设计和运行时的可视化方面非常原始。
我发现数据仓库在视觉上更具吸引力。然而,数据切片似乎是大材小用。我只是希望该过程在每天早上 8 点执行。我不希望它在过去几天内尝试执行(例如,如果我修改了模板)。我希望数据仓库也能更好地处理活动管道中的故障/恢复。
我应该在这里考虑其他方法/建议吗?
谢谢大卫
azure-batch - MaxInternalRetryCountReached - 指定任务已达到最大内部重试次数
请您解释一下这个任务调度错误什么时候会发生?
MaxInternalRetryCountReached - 指定的任务已达到最大内部重试计数 MSDN 链接在这里。
背景是我有时会看到此错误,对于具有 RetryCount = 1 的任务的作业。当看到此错误时,重试计数为 1(这意味着它已重试)。然而,该任务返回的退出代码为 0,并且它似乎已成功完成其工作。
谢谢!
azure - VM 和本地 Active Directory 的 Azure Batch 池
是否可以在执行作业时将 Azure Batch 服务池中的 VM 加入本地 Active Directory,以便它们可以访问本地资源和数据存储?
c# - Azure Batch Job 问题,以未知错误代码结尾
我在使用 Azure Batch 作业时遇到问题。我正在尝试创建一个应用程序池,创建一个 CloudTask,然后在线执行我的应用程序包。
你看到有什么东西不能正常工作吗?
这是现在使用的代码。主要代码:
创建池:
创建作业:
并添加任务。
完成添加任务后,一切似乎都已启动并正在运行,但我收到错误代码:-2146232576 并且没有任何内容打印到任何日志中。
c# - 如何从 Azure 批处理和数据工厂向 Azure 分析服务进行身份验证
我有一个 ac sharp 类库,它使用 AMO 库连接到 Azure 分析服务。
我想将其用作我的数据工厂管道的一部分来刷新多维数据集分区。这是通过 Azure 批处理作为自定义 .net 活动完成的。
在本地运行它可以正常运行,但是它不会在云中运行。它目前出错,因为它没有在我的用户帐户下运行。我知道我可以在连接字符串中添加用户名和密码,但如果可能的话,我更愿意给它某种形式的授权。
是否有其他方法可以使用 Azure 分析服务进行身份验证?
azure - 将 Azure Batch 任务输出持久化到 Azure 存储
假设我有一堆类似的任务在 Azure Batch 虚拟机池中并行运行。这些任务连接到 SQL 数据库并使用 sqlcmd 为单个表提取数据。然后通过管道将表输出压缩到 7zip.exe。所以,命令行类似于(注意那些“”)
cmd /c sqlcmd -i.\table.sql -S 。-E -s "," -I -h -1 -W| "c:\Program Files\7-Zip\7z.exe" a -tbzip2 -si "out.csv.bz2"
这里要注意的是,通常数据作为 out.csv.bz2 文件保存到每个 VM 本地存储中。但是,在 Azure Batch 下,一旦任务完成,从池中分配的 VM 就会消失。所以,我需要一种机制来收集所有这些 out.csv.bz2 文件到 Azure 存储帐户(例如 Azure Blob 存储或 Data Lake 存储)。我似乎没有在 Azure Batch 中找到一种机制来重定向/持久化输出而不是本地 VM 存储直接到 Azure 存储以执行我的命令行任务。
有谁知道如何做到这一点?
batch-file - 未检测到 Azure Batch 服务错误代码上的 cmd 批处理文件中的管道输出
我有一个 .cmd 批处理文件(我们称之为 RunSQlCmd.cmd),它将 sqlcmd 的输出通过管道输出到 7 zip 压缩器
我使用以下命令行从 C# 驱动程序的任务中从 Azure Batch 运行它
(1)cmd /c %AZ_BATCH_NODE_SHARED_DIR%\RunSqlCmd.cmd
但似乎发生的是命令行几乎立即返回,并且 RunSqlCmd.cmd 中的命令没有完全执行,并且创建了空的压缩存档。Azure Batch 任务以成功代码 0 退出。
如果我将任务的命令行更改为
(2)cmd /c start /wait %AZ_BATCH_NODE_SHARED_DIR%\RunSqlCmd.cmd
批处理文件中的命令成功运行,但 Azure Batch 的 stdout 和 stderr 丢失,因为批处理文件在单独的 cmd 窗口中运行并且任务挂起而没有收到任何错误代码。
将任务的命令行更改为
(3)cmd /c start /B /wait %AZ_BATCH_NODE_SHARED_DIR%\RunSqlCmd.cmd
类似于 (1)
什么是正确的方法,以便 Azure Batch 在任务完成并且 RunSqlCmd.cmd 命令完全完成时正确检测?
PS RunSqlCmd.cmd 文件的真实内容为
@echo Run SqlCmd
sqlcmd -i "%~dp0%1.sql" -d dbName -S serverName -U userName -P "password" -s "," -I -h -1 -W -b | "%ProgramFiles%\7-Zip\7z.exe" a -tbzip2 -si "%~dp0%1.csv.bz2"
@echo Done SqlCmd
需要 1 个参数 - 提取数据的 sql 文件名
azure - Azure Batch 微任务并行处理(修改任务队列)
我正在尝试并行化将在其中一个 VM 上触发并且应该在所有 VM 上并行化的微任务。如何修改 Azure Batch 队列。有没有办法通过 API 将任务添加到队列中?