我正在评估Apache Spark,看它是否是满足以下要求的好平台:
云计算环境.
商品硬件.
分布式数据库(例如HBase),可能有几PB的数据.
需要快速完成的大量同步小计算(在几秒钟内).小意味着1-100 MB的数据.
一些不需要快速完成的大型计算(小时很好).大意味着10-1000 GB的数据.
很少,非常大的计算不需要快速完成(天很好).非常大意味着10-100 TB的数据.
所有计算都是相互独立的.
某些计算的实时数据流传入.
涉及机器学习.
阅读了一些关于Spark的内容,我发现了以下优点:
在商品硬件和HBase/Cassandra上运行良好.
MLlib用于机器学习.
Spark Streaming用于实时数据.
虽然MapReduce似乎并不是必需的,但也许它可以加快速度,并且如果将来需求变得更紧,我们会让它们适应.
这些是我仍然存在的主要问题:
它可以非常快速地进行小型计算吗?
它会对大量同时进行的小型计算进行负载平衡吗?
我也想知道我是不是一般都没有尝试将Spark用于不是专门设计的目的,而不是使用主要优点:MapReduce和内存中的RDD.如果是这样,我也欢迎提出替代方案的建议.非常感谢!