CAP定理如何应用于HDFS?

nom7f22z  于 2022-12-09  发布在  HDFS
关注(0)|答案(2)|浏览(214)

我刚开始阅读Hadoop,偶然发现了CAP定理。你能解释一下CAP的哪两个组件适用于HDFS系统吗?

y4ekin9u

y4ekin9u1#

一致性参数

这份文件很清楚地说:“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定理中的“可用性”。*
7eumitmz

7eumitmz2#

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

谈到Hadoop,它支持可用性和分区容差属性。不支持一致性属性,因为只有namenode才有副本放置位置的信息。此信息不适用于集群的每个节点。

相关问题