对大数据架构的建议:mongodb + spark

dnu*_*nul 1 hbase scalability mongodb cassandra apache-spark

我需要实现一个大数据存储+处理系统.

数据每天都在增加(大约每天最多5000万行),数据符合大约10个字段(日期,数字,文本,ID)的非常简单的JSON文档.

然后可以在线查询数据(如果可能),在文档的某些字段(日期范围查询,ID等)上进行任意分组.

我正在考虑使用MongoDB集群来存储所有这些数据,并为我需要查询的字段构建索引,然后在apache Spark集群中处理数据(主要是简单的聚合+排序).也许使用Spark-jobserver在它周围构建一个rest-api.

我担心mongoDB扩展可能性(即存储10b +行)和吞吐量(快速发送1b +值的行以进行处理)或能够在如此大的数据库中维护索引.

相比之下,我考虑使用cassandra或hbase,我认为它更适合存储大型数据集,但在查询中提供的性能较低,如果我提供在线查询,我最终需要这些性能.

1 - mongodb + spark是这种用例的经过验证的堆栈吗?

2 - mongodb(存储+查询性能)可扩展性无限制?

提前致谢

Ros*_*oss 7

如前所述,有许多NoSQL解决方案可以满足您的需求.我可以推荐MongoDB与Spark*一起使用,特别是如果你有大型MongoDB集群的操作经验.

有一篇关于将分析转化为MongoDB 实时查询的白皮书.也许更有趣的是东方航空公司关于他们使用MongoDB和Spark 的博客文章,以及它如何为每天16亿次航班搜索提供支持.

关于数据大小,然后在MongoDB中管理具有那么多数据的集群是很正常的.任何解决方案的性能部分都是快速向Spark发送1b +文档进行处理.并行和利用数据局部性是关键.此外,你的Spark算法需要利用这种并行性 - 大量数据的混乱是时间昂贵的.

  • 免责声明:我是MongoDB Spark Connector的作者,并为MongoDB工作.