Ben*_*min 2 filesystems file-io hadoop distributed-system gfs
像Google File System和Hadoop这样的分布式文件系统不支持随机I/O.
(它不能修改之前写过的文件.只能编写和附加.)
他们为什么设计这样的文件系统?
设计的重要优势是什么?
PS我知道Hadoop将支持修改写入的数据.
但是他们说,它的表现会非常不好.为什么?
Hadoop分发和复制文件.由于文件是复制的,因此任何写操作都必须通过网络查找每个复制的部分并更新文件.这将大大增加操作的时间.更新文件可能会将其推过块大小,并要求将文件拆分为2个块,然后复制第2个块.我不知道内部结构以及它何时/如何分裂块......但这可能是一个复杂的问题.
如果作业失败或被杀死已经进行了更新并重新运行怎么办?它可以多次更新文件.
不更新分布式系统中文件的优点是,在更新文件时,您不知道还有谁在使用该文件,您不知道文件的存储位置.有可能超时(块的节点没有响应),所以你最终可能会得到不匹配的数据(同样,我不知道hadoop的内部结构,并且可能会处理节点关闭的更新,这只是我头脑风暴的事情)
在HDFS上更新文件有很多潜在的问题(上面列出了一些).它们都不是不可克服的,但它们需要性能损失来检查和解释.
由于HDFS的主要目的是存储用于mapreduce的数据,因此行级更新在此阶段并不重要.