在the HDFS Archiectiure guide的简单一致性模型部分,它表明(强调我的):
HDFS应用程序需要一个一次写入多次读取的文件访问模型。创建,编写和关闭文件无需更改。此假设简化了数据一致性问题,并实现了高吞吐量数据访问。 Map / Reduce应用程序或Web爬虫应用程序完全适合此模型。有计划在将来支持对文件的附加写入。
我对这里使用“不需要”感到困惑。他们真的是指“绝不”或“不应该”吗?如果是这样,HBase等程序如何提供更新支持?如果他们的确意味着“不需要”(即"doesn't have to"),那么试图传达的是什么?一旦写入文件系统需要您更改文件?
答案 0 :(得分:1)
据我所知,need not
是假设的一部分,“简化了导致高...的数据一致性问题”。实际上意味着can't
。但您可以删除并再次创建孔文件。
在hadoop 0.20.2-append之后(如显示here)你可以附加数据。
对于我读到的所有内容,我理解HBase主要使用内存(WAL? section 11.8.3),并且修改作为标记附加。例如,要删除列,它会生成一个逻辑删除(请参阅section 5.8.1.5),只标记删除和定期压缩。
也许我错了。这是我学习确切解释的好时机:)