Azure Data Factory+Batch执行Python脚本遇阻塞及依赖问题求助
Azure Data Factory 自定义活动问题及疑问解答
一、管道持续运行问题排查
针对设置Azure Batch节点池启动任务后管道一直处于运行状态的情况,可从以下方向排查:
- 启动任务执行异常:检查
setup_python.sh脚本是否存在阻塞或失败情况。登录Batch节点查看启动任务日志(路径一般为/var/lib/azurebatch/tasks/startup),确认依赖安装命令是否执行完成——比如是否卡在下载依赖、未加sudo导致权限不足,或是网络问题引发包安装超时。 - 节点资源不足:Ubuntu 22.04节点的CPU、内存配置是否足够?若节点资源耗尽,启动任务或后续Python脚本可能无法正常执行,导致任务挂起。可查看Batch节点的监控指标(CPU使用率、内存占用)确认。
- 自定义活动配置问题:检查Custom活动的超时时间设置是否合理,不合理的超时配置可能导致任务一直处于运行状态。另外,确认存储账户中的
calc.py脚本能否被Batch节点正常访问,是否存在权限配置问题。 - Python脚本本身问题:即使依赖安装成功,
calc.py脚本可能存在死循环、数据库连接超时未处理等情况,导致脚本一直运行不结束。可在本地模拟Batch节点环境(Ubuntu 22.04+对应版本的Python+依赖),测试脚本是否能正常执行完毕。
二、关于ADF数据库链接服务的疑问
如果Python脚本自行通过代码连接MySQL Flexible Server(比如在脚本里直接编写数据库连接字符串、账号密码),那么ADF不需要配置数据库链接服务及数据集。此时数据库连接逻辑完全由Python脚本处理,ADF仅负责调度执行脚本,不参与数据库连接操作。
需要注意:
- 确保Batch节点的网络能够访问MySQL Flexible Server(比如节点池和数据库在同一VNet,或是数据库允许Batch节点的公网IP访问)。
- 脚本中的数据库凭证建议通过Azure Key Vault存储,避免硬编码,提升安全性。
内容的提问来源于stack exchange,提问作者Sebastian Pacheco
相关产品推荐
相关产品推荐

