根据 brisk implementation [Presentation in Cassandra SF] - Cassandra、CFS、Job/Task Tracker 和 Hive Metastore 在单个 JVM 中运行,这与配置独立的 hadoop 集群完全不同。
这是优势吗?
如果 Task Tracker 或 JVM 中的任何单个进程失败,会发生什么情况?这会影响同一个 JVM 中的 cassandra 实例吗?
CFS是如何获取数据的?它是将 SSTables 存储为子 block 还是它的副本?子 block 的压缩在哪里完成?
问候, 泰米尔语
最佳答案
Brisk 确实在单个 JVM 中运行所有这些,但在相互不影响的独立线程中。跟踪器在专用节点上运行,但没有单点故障。可以选择任何节点来运行跟踪器,并且所有状态都保存到 Cassandra 集群。
所有这些都在同一个 JVM 中的优势在于,将数据从 Cassandra 移动到 Hadoop 代码时没有复制和序列化开销。
CassandraFS 将 64MB 的 HDFS block 分成 2MB 的 block ,并将它们作为列存储在 Cassandra 中,每个 block 一行。文件本身被映射到 inode 列族中的 block 行 UUID 列表。
关于 Cassandra 文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658350/