Cassandra采用了与Hadoop不同的解决方案. Cassandra擅长大批量实时事务处理,而Hadoop则擅长更多面向批处理的分析解决方案.
Cassandra和Hadoop的体系结构/实现有何不同,它们考虑了这种使用差异. (在非专业软件专业术语中)
最佳答案 Vanilla hadoop由核心的分布式文件系统(DFS)和支持Map Reduce模型编写程序进行分析的库组成. DFS使Hadoop具有可扩展性.它负责将数据分块到多节点集群中的多个节点,以便Map Reduce可以处理单个数据块可用节点,从而实现并行性.
可以在here 找到作为Hadoop分布式文件系统(HDFS)基础的Google文件系统的论文
Map Reduce模型的论文可以在here找到
有关Map Reduce的详细说明请阅读本post
Cassandra是一个高度可扩展,最终一致,分布式,结构化的键值存储.它不是传统的数据库,而更像是存储键/值对的Hashtable或HashMap. Cassandra在HDFS之上工作,并利用它来扩展. Cassandra和HBase都是Google BigTable的实现. Google BigTable的论文可以在here找到.
BigTable使用字符串排序表(SSTable)来存储键/值对. SSTable只是HDFS中的一个文件,它存储键后跟值.此外,BigTable维护一个索引,该索引在该密钥的文件中具有密钥和偏移量,该索引仅使用对偏移位置的搜索来读取该密钥的值. SSTable实际上是不可变的,这意味着在创建文件之后,不能对现有的键/值对进行修改.新的键/值对将附加到文件中.更新和删除记录将附加到文件中,使用较新的键/值进行更新,并使用键和逻辑删除值进行删除.对于SSTable,此文件中允许重复的密钥.每当更新或删除发生时,索引也会被修改,以便该键的偏移量指向最新值或逻辑删除值.
因此,您可以看到Cassandra的内部允许快速读/写,这对于实时数据处理至关重要.而具有Map Reduce的Vanilla Hadoop可用于处理面向批处理的被动数据.