我正在构建一个社交网络,包含各种功能,许多功能都是由大数据密集型工作负载(如机器学习)提供的。例如:推荐系统、搜索引擎和时序序列匹配器.
考虑到我目前有5<用户--但没有看到明显的增长--我应该使用哪些指标来决定两者之间的关系:
将Postgres作为一种方法来减少它和Spark之间的移植压力(使用SQL抽象层,两者都能工作)。火花似乎相当有趣,可以想象各种ML,SQL和图形问题,它可以迅速作出回答。MongoDB是我通常使用的工具,但我发现它的缩放和地图缩减功能非常有限。
发布于 2015-01-23 03:06:36
我认为您搜索软件堆栈/体系结构的方向是正确的,它可以:
对这些优点,Hadoop +火花可以给你你需要的边缘。Hadoop目前相对成熟,能够以批处理方式处理大规模数据。它支持可靠和可伸缩的存储(HDFS)和计算(Mapreduce/Yarn)。随着星火,你可以利用存储(HDFS)加上实时计算(性能)所增加的火花。
在开发方面,Java/Scala本机支持这两个系统。库支持,性能调优在这里的堆叠溢出和其他任何地方都很丰富。至少有几个机器学习库(Mahout,Mlib)与hadoop、spark一起工作。
对于部署,AWS和其他云提供商可以为hadoop/spark提供主机解决方案。那里也没什么问题。
发布于 2015-01-05 02:19:34
我想你应该把数据存储和数据处理分开。特别是“火花还是MongoDB?”这不是一件好事,而是“星火”、“哈多奥普”或“风暴”?还有"MongoDB或Postgres或HDFS?“
在任何情况下,我都不会让数据库进行处理。
发布于 2015-01-17 20:29:01
我不得不承认我有一点偏见,但是如果你想学一些新东西,你有认真的业余时间,你愿意读很多书,你有资源(在基础设施方面),去HBase*,你不会后悔的。当你可以实时拥有数十亿个原子计数器时,一个充满可能性和有趣特性的全新宇宙打开了。
*和Hadoop,Hive,Spark.
https://stackoverflow.com/questions/27730628
复制相似问题