我正在使用ADF执行Databricks笔记本。目前,我有6个管道,因此它们被执行。
具体来说,在完成前者之后,后者由循环框使用多个参数执行,并且这种情况一直存在。例如,在完成第一个管道之后,它将使用不同的参数触发第二个管道的3个实例,并且这些实例中的每个实例都会触发第三个管道的多个实例。结果,我越深入,必须运行的管道就越多。
我遇到的问题是:执行每个管道时,它将要求Databricks分配要运行的集群。但是,Databricks限制了每个工作空间使用的内核数量,这导致管道实例无法运行。
我的问题是:是否有任何解决方案来控制同时运行的管道实例数量,或者有任何解决方案来解决我的问题?
预先感谢:-)
答案 0 :(得分:0)
为什么会出现此问题?
注意:创建Databricks群集始终具有订阅中可用核心数量的依赖项。
在创建任何数据块集群之前,请确保核心数为 在所选区域和VM系列vCPU中可用。
您可以转到 Azure Portal => 订阅 => 选择您的订阅 =>“设置”来检出订阅的核心限制使用情况+报价” =>查看每个区域可用的使用情况配额。
示例:如果您的订阅具有> 72个内核,从而导致ADF运行成功,否则将导致失败 >。
Activity Validate failed: Databricks execution failed with error message: Unexpected failure while waiting for the cluster to be ready. Cause Unexpected state for cluster (job-200-run-1): Could not launch cluster due to cloud provider failures. azure_error_code: OperationNotAllowed, azure_error_message: Operation results in exceeding quota limits of Core. Maximum allowed: 350, Current in use: 344
我正在尝试创建6个带有数据块集群的管道,每个集群有2个工作节点。这意味着需要
(6个管道)*(1个驱动程序节点+ 2个工作节点)*(4个内核)= 72个内核。
与具有4个内核的VM Size Standard_DS3_v2一起使用的计算。
注意:要创建一个数据砖火花集群,该集群需要4个以上的核,(对于Driver类型,最少4个核;对于4个核,至少4个核)。 工人类型)。
此问题的解决方案:
要请求增加一种或多种支持这种增加的资源,请提交 Azure support request(为问题类型选择“配额”)。
问题类型:服务和订阅限制(配额)
参考: Total regional vCPU limit increases
希望这会有所帮助。如果您还有其他疑问,请告诉我们。
请在有助于您的帖子上单击“标记为答案”,然后点击“赞”,这可能会对其他社区成员有所帮助。
答案 1 :(得分:0)
通过设置-批次计数参数,可以限制每个foreach级别并行运行的活动数。 (在foreach循环的“设置”标签下找到)
batchCount-用于控制并行执行次数(当isSequential设置为false时)的批次计数。
https://docs.microsoft.com/en-us/azure/data-factory/control-flow-for-each-activity
如果无法在整体管道级别上设置限制,请尝试在每个嵌套的foreach循环中获得最小批处理数。