5

根据我的阅读,HDFS 速度很快,因为它放松了一些 POSIX 技术,但这是如何工作的?或者至少是哪些?我没有找到答案,因为在谷歌上,我发现有人将提问者重定向到一个大型网站!

4

1 回答 1

7

根据Hadoop - The Definitive Guide(建议买这本书)

创建文件后,它在文件系统命名空间中可见,正如预期的那样:

文件系统的一致性模型描述了文件读取和写入的数据可见性。HDFS 权衡了一些 POSIX 对性能的要求,因此某些操作的行为可能与您预期的不同。

但是,即使流被刷新,写入文件的任何内容都不能保证可见。所以文件的长度似乎为零:

一旦写入了超过一个块的数据,第一个块将对新读者可见。后续块也是如此:它始终是当前正在写入的块对其他读者不可见。

HDFS 提供了一种通过 FSDataOutputStream 上的 sync() 方法强制所有缓冲区同步到数据节点的方法。从 sync() 成功返回后,HDFS 保证写入文件中该点的数据被持久化并且对所有新读者可见:

另一件事是

权限分为三种:读权限(r)、写权限(w)和执行权限(x)。读取文件或列出目录的内容需要读取权限。写入文件或目录需要写入权限才能在其中创建或删除文件或目录。文件的执行权限被忽略,因为您无法在 HDFS 上执行文件(与 POSIX 不同),并且对于目录,它需要访问其子级。

于 2012-07-06T02:37:30.607 回答