我只是想知道将apache Cassandra的数据存储到其他分布式文件系统上的影响,比如说,我有一个5节点的Hadoop集群,复制系数为3。
比如说,我有一个5个节点的Hadoop集群,复制因子为3。
同样的,对于cassandra来说,我有5个节点的集群,所有键空间的复制因子为3,所有的数据将被存储在hdfs位置,并具有相同的Mount路径。
例如:节点-0 Cassandra数据目录-"datausercassandra-0"
和Cassandra日志目录-"datausercassandra-0logs"。
在这样的架构下,我需要对以下几点进行评论--------。
正如在datastax文档中建议的那样,casaandra数据和commitlog目录应该是不同的,在这种情况下是不可能的。在默认配置下,casaandra的提交日志大小是8192MB。所以根据我的理解,如果我有一个1TB的磁盘,如果磁盘满了或任何磁盘级别的错误,将停止整个cassandra集群?
第二个问题是关于底层存储机制。通过指定hdfs的复制因子3和cassandra的复制因子3来实现两级数据分布,那么是否相同的数据(sstables)将被存储在9个位置?会不会有很大的内存损失,请大家给点建议?
Cassandra不支持在非本地文件系统上开箱即用的数据存储,比如HDFS等。理论上,你可以黑掉源代码来支持这一点,但这没有意义--Cassandra自己处理复制,不需要额外的文件系统层。