首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DBSCAN集群python -在多个集群任务上并行运行

DBSCAN集群python -在多个集群任务上并行运行
EN

Stack Overflow用户
提问于 2018-07-15 17:21:01
回答 1查看 852关注 0票数 1

我需要对大约1400万个用户运行DBSCAN集群,每个用户都有1k个数据点。每个用户都是一个完全独立于其他用户的不同聚类案例。基本上,我有许多小的集群任务。

在一台机器上运行它对我来说是行不通的,即使是在使用python多处理模块并行任务时,因为IO和集群需要很长时间。

我考虑过使用Spark来管理集群上的并行运行,但我认为这可能不适合我的情况,因为DBSCAN不是在MLlib中实现的,而且我不需要并行运行每个集群任务,而是单独运行每个任务。每当我尝试使用Spark原生RDD或Dataframe之外的任何东西时,它显然都必须收集到驱动程序节点的所有数据。

我的问题是,是否有更聪明的解决方案来解决我的问题,而不是简单地在不同的节点上运行许多独立的进程,当每个进程都选择一个用户子集时?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-07-16 02:51:27

由于你的用户都是独立的,这显然是一个令人尴尬的并行问题。您希望将同一任务(DBSCAN)运行数百万次。有许多方法可以实现这一点。如果你有一个带锁的网络文件系统,你可以使用Spark (虽然我会考虑使用一个基于Java的工具,比如ELKI -你可能需要确保你在用户上而不是在每个用户内并行),MapReduce,甚至Makefiles带锁。关键因素是您的数据是如何组织的。无论是为所有工作节点并行读取数据,还是通过主节点路由所有数据(bad),都会产生巨大的差异。您需要将数据高效地提供给工作人员,并需要存储聚类结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51347015

复制
相关文章

相似问题

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