首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理分布式集群?

管理分布式集群?
EN

Stack Overflow用户
提问于 2011-04-15 08:18:23
回答 1查看 2.9K关注 0票数 5

假设已经设置了一个cassandra集群。您有一个10TB的数据库,它均匀地分布在10个节点上,一切都运行得很顺利。

假设您有100台机器可供使用,每台机器都试图从cassandra集群读取(不同的)数据。此外,您还需要经常运行许多作业,每个作业在不同的时间运行(显然,每个作业都需要在不同的计算机上运行)。

您如何管理所有这些任务/工作?如何在机器之间分配任务?如何跟踪进程中的作业/机器?

在Linux环境中,有什么开源工具(最好是带有Python客户端的)可以帮助你做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-15 16:32:19

您需要的是一个网格/HPC框架来处理您的分布式基础设施和运行作业。

在unix/linux中,有两个系统可能对您有很好的帮助。Portable Batch Systems (PBS)Condor

您如何管理所有这些任务/作业?

Condor和PBS都有一个主控需要充当每个作业/任务的受体,对于每个作业/任务,您可以将优先级和鉴别器关联起来。集群的管理员根据这些鉴别器设置规则来调度作业。

如何在机器之间分配任务?

Condor或PBS将为您完成此任务,您只需将作业提交到主节点并指定优先级、输入和输出等。

您可以定期检查作业何时完成,通过不同的机制订阅通知,或者执行某种job.wait()以阻止作业完成。

如何跟踪进程中的作业/机器?

PBS和Condor都有类似于top的命令来列出在等待、运行或取消中排队的作业。如果进程允许快照,它们还具有停止或取消作业的实用程序。

对于大型集群,我的建议是尝试使用Condor。它已经存在很长一段时间了,用来解决和你一样的问题。这里有用于Condor + Python的some examples

要考虑的其他较新的解决方案包括:

  • Celery a distributed task queue for Python.
  • DiscoProject是一个基于MapReduce范式的分布式计算框架。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5671141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档