5

我刚开始阅读 Hadoop 并遇到了 CAP Theorem。您能否介绍一下 CAP 的哪两个组件适用于 HDFS 系统?

4

3 回答 3

6

一致性论证

该文档非常清楚地指出:“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 定理的上下文中支持“一致性和分区容限”不是“可用性”

于 2020-12-15T17:16:36.520 回答
3
  • C – 一致性(所有节点都以同质形式查看数据,即每个节点在任何时刻都具有相同的数据知识)
  • A – 可用性(保证每个请求都会收到可能被处理或失败的响应)
  • P – Partition Tolerance(即使消息丢失或部分系统发生故障,系统也会继续运行)

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

于 2019-11-28T10:25:47.047 回答
-2

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

不支持一致性。

于 2019-11-12T04:18:21.407 回答