我个别理解每个是什么,但我很难在用例的差异上解决问题.
可以简要描述一下每个是什么,以及一个用例何时可以选择其他人的例子.
我的理解是Spark和Cassandra甚至没有可比性,但我的同事认为它们是同一物种.
作为大数据的新手,如果这是一个严格的意见/首选基础,我会提前道歉.如果有,请告诉我,我会把问题记下来.
在列出的那些中,Cassandra是唯一的数据库.Hive是Hadoop上的SQL执行引擎.SparkSQL提供相同的查询语言,但Spark更适用于其他用例,如流媒体和机器学习.Storm是一个实时的流处理框架; Spark做微批,Storm立即处理消息.(顺便说一句,我觉得Storm是一个古老的框架.我被告知Flink比Storm有更好的工作.Heron的目标是成为下一代Storm.)
Spark在具有大量内存的系统上运行得最好.通过使用SQL优化(如分区修剪,谓词下推以及操作ORC或Parquet的柱状格式),Hive可以说比Spark或Cassandra更大量地处理更多的原始数据.
Spark与Cassandra一样与Hive一样,但是,更多实时用例需要使用Cassandra,因为Hive查询必须启动MapReduce/Tez执行,这需要几秒钟,而使用正确的Cassandra数据模型则需要几毫秒.
Cassandra非常关注数据模型......没有理由不能将数据转储到Hadoop/Hive中,然后导出到Cassandra模型.或者,您可以使用Hbase而不是Cassandra,并使用类似的模型,可用性的权衡(参见CAP定理).
如果您对Spark和Cassandra用例感兴趣,那么SMACK堆栈就是常用的安装设置之一.