CAP定理如何应用于HDFS?

时间:2019-11-11 05:55:48

标签: hdfs cap-theorem

我刚刚开始阅读有关Hadoop的内容,并遇到了CAP定理。您能否说明一下CAP的哪两个组件适用于HDFS系统?

3 个答案:

答案 0 :(得分:0)

Hadoop支持分区容限和可用性。

不支持一致性。

答案 1 :(得分:0)

  • C –一致性(所有节点以同质形式查看数据,即每个节点在任何时刻都具有相同的数据知识)
  • A –可用性(保证每个请求都会收到可能已处理或失败的响应)
  • P –分区容限(即使消息丢失或系统部分故障,系统仍可继续运行)

谈论Hadoop,它支持Availability and Partition Tolerance属性。不支持Consistency属性,因为只有namenode具有复制副本放置位置的信息。此信息不适用于群集的每个节点。

答案 2 :(得分:0)

一致性论证

文件非常清楚地说明: “ Hadoop文件系统的一致性模型是一拷贝更新语义;传统的本地POSIX文件系统是一致性模型。”

(单拷贝更新语义意味着访问或更新给定文件的所有进程所看到的文件内容将看起来好像文件的单个副本一样。)

前进,该文件说:

  • “创建。在完成写入新创建文件的输出流上的close()操作完成之后,查询文件元数据和内容的集群内操作必须立即查看文件及其数据。”
  • “更新。在写入新创建文件的输出流上的close()操作完成后,查询文件元数据和内容的集群内操作必须立即看到新数据。
  • “删除。在除“ /”以外的路径上成功完成delete()操作后,务必不得可见或可访问。特别是listStatus(),open(),rename()和append()操作必须失败。”

上述特征表明HDFS中存在“一致性”。

来源:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystem/introduction.html

分区容差参数

HDFS为名称节点和数据节点提供高可用性。

来源:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html

缺乏可用性的论据

在文档中(在“操作和故障”部分下)中非常清楚地提到了此内容:

“完成操作的时间是不确定的,可能取决于实现方式和系统状态。”

这表明HDFS中缺少CAP上下文中的“可用性”。

来源: https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/filesystem/introduction.html

鉴于上述论点,我相信 HDFS在以下情况下支持“一致性和分区容忍度” ,而不支持“可用性” CAP定理。