AWS Step Functions 与 Luigi 的编排对比

2024-02-11

我的团队有一个针对小型项目的整体服务,但为了重新架构和扩展,我们计划迁移到 Amazon AWS 的云服务,并评估编排是否将 Luigi 作为容器任务运行或使用 AWS Step Functions?我对他们中的任何一个都没有任何经验,尤其是路易吉。 谁能指出他们在 Luigi 中遇到的任何问题,或者如何证明它比 AWS 更好(如果有的话)?任何其他相同的建议。

提前致谢。


我不知道 AWS 如何进行编排,但如果您计划在任何时间扩展到至少数千个工作岗位,我不建议投资 Luigi。 Luigi 对于中小型项目非常有用。它提供了一个出色的界面,用于定义作业并通过原子文件系统操作确保作业完成。然而,Luigi 的问题是运行作业的框架。 Luigi 需要与工作人员不断沟通才能运行,根据我自己的经验,当我尝试扩展时,这会破坏网络带宽。

在我的研究中,我将使用我大学运行 SLURM 的集群计算网格,在轻到中型工作流程上生成一个包含 10,000 个任务的网络。我所有的任务都不需要那么长时间才能完成,每个任务最多可能需要 5 分钟。我尝试了以下三种方法来有效地使用Luigi。

  1. SciLuigi 的 slurm 任务是从中央 luigi 工作人员(不使用中央调度程序)向 SLURM 提交作业。如果您的作业能够快速被接受并运行,则此方法非常有效。然而,它在调度节点上使用了不合理的资源量,因为每个工作进程都是一个新进程。此外,它还会破坏您在系统中拥有的任何优先级。更好的方法是先分配很多工人,然后让他们不断地工作。

  2. 我尝试的第二种方法就是这样。我在我的家庭服务器上启动了 Luigi 中央调度程序(因为否则我无法监控工作状态,就像上面的工作流程一样),并在 SLURM 集群上启动工作人员,这些工作人员都具有相同的配置,因此每个工作人员都可以运行实验的任何部分。问题是,即使有 500Mbps 的互联网,过去大约 50 名员工 Luigi 也会停止工作,我的服务器的互联网连接也会停止。因此,我开始只用 50 名员工来运行作业,这大大减慢了我的工作流程。此外,每个工人都必须向中央调度程序注册每个作业(另一个巨大的痛点),如果只有 50 个工人,这可能需要几个小时。

  3. 为了缩短启动时间,我决定按参数对根任务子树进行分区,并将每个子树提交给 SLURM。所以现在启动时间相当短,但我失去了任何工人运行任何作业的能力,这仍然非常重要。而且,我仍然只能和大约 50 名工人一起工作。当我完成子树时,我运行了最后一项工作来完成实验。

总之,Luigi 非常适合中小型工作流程,但一旦开始处理 1,000 多个任务和工作人员,框架很快就会跟不上。我希望我的经验能为该框架提供一些见解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Step Functions 与 Luigi 的编排对比 的相关文章

  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • AWS API Gateway 403 禁止

    我在 AWS API Gateway 中创建了一个 API 在该 API 中 我创建了一个带有自定义 http 端点的代理资源 但是当我访问API网关端点时https 2r3g3ttr6y execute api eu east 1 ama
  • 如何更改 Amazon Redshift 中的默认时区?

    默认情况下将时间戳列设置为 SYSDATE 将其存储为UTC 是否可以更改时区 以便 SYSDATE 将日期和时间存储到不同的时区 到目前为止 我已经检查了SET http docs aws amazon com redshift late
  • 从 EC2 W2008 实例创建 AMI - 为什么从来没有获得密码?

    我正在尝试做什么 我正在尝试克隆 EC2视窗2008通过管理控制台实例 该实例基于 Windows Server2008 i386 Base v104 ami 92ba43fb 但上面安装了许多应用程序 我想为新实例保留这些应用程序 发生了
  • 从 node.js 创建对 AWS ES 实例的有效签名请求

    我试图找到一个示例 说明如何连接到 Node js 中的 AWS ES 实例 然后通过一个简单的请求访问 ES 集群 我正在尝试使用elasticsearch节点包 https www npmjs com package elasticse
  • 使用 Terraform 管理访问 RDS 数据库的凭据时出现问题

    我通过 Terraform 创建了一个秘密 该秘密用于访问也在 Terraform 中定义的 RDS 数据库 并且在秘密中 我不想包含username and password 因此我创建了一个空密钥 然后在 AWS 控制台中手动添加凭证
  • 如何使用对象标记上传到 AWS S3

    有没有办法使用标签将文件上传到AWS S3 不将标签添加到S3中的现有文件 对象 我需要让该文件与我的 Tags 一起出现在 S3 中 即在单个 API 调用中 我需要这个 因为我使用 Lambda 函数 使用这些 S3 对象标签 由 S3
  • 每次在我的 AWS SQS 目标上推送通知时如何触发事件?

    我正在将 AWS SQS 用于 Amazon MWS 订单 API 每当有人从已将我添加为其开发人员的卖家帐户订购时 亚马逊都会将通知发送到我的 AWS SQS 应用程序 我可以从那里提取通知 但为此 我必须创建一个调度程序来提取通知 我是
  • 将 Django 部署到 AWS;傻瓜静态文件

    我对这个项目的最后一步完全迷失了 到目前为止 我已经能够开发一个 Django 应用程序 它可以在本地主机上按照我想要的方式工作 我已经能够将网站部署到 AWS EC2 但我一定错过了有关提供静态文件的一些基本知识 我什至还没有尝试过媒体文
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • AWS Amazon - 登录循环卡住

    我已经使用 AWS 亚马逊几年了 但是 突然当我登录时 我进入了此验证部分 他们将验证码发送到我的电子邮件 我收到了该代码 因此 我输入收到的代码 最终返回登录页面 所以我登录后 同样的事情一遍又一遍地发生 我无法进入我的仪表板 它只是不断
  • 从 Amazon S3 存储桶下载文件的脚本

    尝试编写脚本以从 Amazon S3 存储桶下载文件 cURL 网站上的示例遇到问题 下面的脚本产生 我们计算的请求签名与您的签名不匹配 假如 检查您的密钥和签名方法 感谢任何帮助 bin sh file filename php buck
  • 使用无服务器访问 SSM 变量

    我想用无服务器变量中的 SSM 参数 https serverless com blog serverless v1 22 0 按照文档 我运行了以下命令 aws ssm put parameter name foo value bar t
  • Spring JMS监听器即使在异常时也会确认

    我正在使用 JMS 向 SQS 队列发送 接收消息 但是即使在使用 client acknowledge 时出现异常 我也无法重新传递消息 如何实现这一目标 我尝试了一个简单的测试 JmsListener destination test
  • AWS cognito 用户迁移池触发器不适用于登录流程

    我正在使用带有认知执行角色的 Lambda 函数进行 AWS 认知池迁移 以下是我的新池应用程序客户端设置 or AWS doc says 用户迁移身份验证流程 用户迁移 Lambda 触发器 允许从旧用户管理系统轻松迁移用户 进入您的用户
  • AWS lambda 是否保证将函数更新到新版本时不会出现停机?

    默认情况下 AWS 使用LATEST更新了最新 lambda 版本的别名 我假设执行以下步骤 Now LATEST别名点版本 5 用户部署新版本的 lambda 在部署新版本时 LATEST别名仍然指向版本 5 部署完成后 Lambda 只
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • 在 Python 2.7 中出现“ImportError:无法导入名称 HTTPSConnection”错误

    我正在尝试在 AWS ElasticBeanstalk 中部署 django 当我按照所示步骤操作时here http docs aws amazon com elasticbeanstalk latest dg create deploy
  • cloudfront 响应状态为 413(请求实体太大)

    我们需要发送大量数据作为 URL 的一部分 Angular 将读取该数据以呈现页面 网址超过 10000 个字符 但 cloudfront 返回以下错误 错误的请求 由 cloudfront CloudFront 生成请求 ID I2fOA
  • 如何使用 aws-cdk 在 EC2 和 RDS 之间创建 DependsOn 关系

    我目前正在使用aws cdk TypeScript 创建一个堆栈 其中包含EC2实例和一个RDS数据库实例 The RDS实例需要在之前设置EC2实例可以启动并且userdata将被执行 我遇到的问题是 我找不到一种方法来定义DepensO

随机推荐

  • `void foo(int a[static 0]);` 有效吗?

    以下函数是否严格符合C99 void foo int a static 0 void a GCC 和 Clang 都会发出有关使用零大小数组的警告 但我认为这个警告是不合理的 据我所知 6 7 6 3p7 https port70 net
  • 识别 C# 列表中的唯一值

    我创建了一个类 如下所示 来表示复合主键模型 public class PrimaryKeyModel public string ColumnName get set public string ColumnValue get set p
  • Vega-lite:轴中标签的换行或自动换行

    我试图将 x 轴的标签包裹在下一行 因为标签长度很长 那么有没有什么办法可以实现呢 我尝试使用calculate and labelExpr通过破坏标签字符串 然后使用 n 连接它们 但这似乎不起作用 是否有任何其他配置可以帮助我实现此用例
  • 如何在Python中加入MongoDB集合?

    如何在 Python 中连接 在 SQL 的 INNER JOIN 意义上 两个 MongoDB 集合 我是否需要使用本机映射 减少 JavaScript 代码或在 PyMongo 中执行此操作 如何用更少的代码解决这个问题 Mongo 存
  • UWP 项目不支持触发器元素 (XAML)

    我正在为 Windows 10 开发通用 Windows 应用程序 我发现的第一件事是在设置图像样式时不支持触发器元素 XAML 这是我试图实现的代码 抱歉 我必须在这里使用图像 我是从我的虚拟机获取它的 这种类型的触发器现在如何在通用 W
  • 访问 Flask 中传入的 POST 数据

    这是烧瓶代码 from flask import Flask request import json app Flask name app route methods GET POST def refresh params thing1 r
  • 如何阻止 iOS 启动图像在 Phonegap / Sencha Touch 中向上移动

    我有一个 Sencha Touch 1 1 Phonegap 1 3 应用程序 并且有一个根据 iOS 文档调整大小的纵向和横向启动图像 当应用程序首次启动时 两个启动图像都正确定位 显示加载旋转器后 启动图像会垂直移动少量 在屏幕底部留下
  • Boost::Asio:为什么 async_write 在通过给定套接字发送缓冲区时会截断缓冲区?

    我目前正在尝试设计一个相当简单的boost asio服务器 我的第一个单元测试相当简单 发送 JSON 请求 COMMAND ADD 1 VALUE 1 并收到以下回复 SUCCESS true VALUE 2 然而 相反 回复在被截断后被
  • 引起原因:java.sql.SQLException:用户“root”@“localhost”访问被拒绝(使用密码:YES)

    当我尝试运行该应用程序时 出现以下错误 见下文 已经尝试过类似主题上发布的解决方案 Exception in thread main org springframework jdbc CannotGetJdbcConnectionExcep
  • 在 R 数据框中创建所有可能的列排列

    我有一个看起来像这样的 df code 1 code 2 code 3 code 4 1 82 93 NA NA 2 15 85 93 NA 3 93 89 NA NA 4 81 NA NA NA 我想生成一个新的 df 它包含所有可能的列
  • 在 Go 中创建迭代器最惯用的方法是什么?

    一种选择是使用渠道 通道在某种程度上就像迭代器 您可以使用 range 关键字迭代它们 但是当你发现你无法在不泄漏 goroutine 的情况下跳出这个循环时 使用就会受到限制 在 Go 中创建迭代器模式的惯用方法是什么 Edit 渠道的根
  • 为什么 Grails 中唯一约束字段更新失败

    当我在域类中映射自定义身份属性时 为什么 hibernate 要检查唯一约束 当我更新对象时 尽管发布的字段值与数据库中存储的值相同 但验证失败 即使我没有对表单进行任何更改 确保 dirty false 并且没有属性绑定错误 也会发生这种
  • SqlDependency 与 SqlCacheDependency

    它们之间的主要区别是什么以及何时应该使用它们 我最初的理解是 SqlCacheDependency 使用轮询 但我读到它对于 ASP NET 2 0 也没有 我想知道哪个最适合在 ASP NET Web 服务器下缓存 linq 查询 这将是
  • 在后台接收推送通知

    我知道很多地方都涉及到这一点 但我无法弄清楚 我使用 Urban Airship 来推送通知 一切似乎都很好 除了当我的应用程序在后台时 didReceiveRemoteNotification没有接到电话 它在前台运行 我能够正确处理消息
  • Echo PHP 变量作为输入字段的值[重复]

    这个问题在这里已经有答案了 我有一个带有多个输入标签的简单 HTML 表单 在页面加载时 我向表单提供数据以回显数据库中字段的当前值 然后用户可以修改这些值并再次提交以执行更新
  • 使用 Lodash 或 Underscore 按多列对对象进行分组

    我有以下对象records notes id 1 description hey userId 2 replyToId null postId 2 parentId null id 5 description hey test userId
  • 线程“main”java.net.ConnectException中出现异常:连接被拒绝:连接[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 如何彻底卸载Visual Studio 2010?

    我一直在寻找一个干净的解决方案来完全并最终从我的计算机中删除 Visual Studio 2010 当您安装 Visual Studio 时 它还会在 添加 删除程序 面板中安装一堆程序 大约 55 个 appwiz cpl 我已经尝试过微
  • ABPeoplePickerNavigationController 随着 iOS8 的变化?

    由于我已将 iPhone 上的 XCode 6 0 6A313 和 iOS 8 0 12A365 更新为 gm 种子 因此 ABPeoplePickerNavigationController 代码无法像以前一样工作 iOS 7 1 2 如
  • AWS Step Functions 与 Luigi 的编排对比

    我的团队有一个针对小型项目的整体服务 但为了重新架构和扩展 我们计划迁移到 Amazon AWS 的云服务 并评估编排是否将 Luigi 作为容器任务运行或使用 AWS Step Functions 我对他们中的任何一个都没有任何经验 尤其