是否可以并行追加多个客户端的HDFS文件?

时间:2011-06-17 17:40:07

标签: hadoop hdfs gfs

基本上整个问题都在标题中。我想知道是否可以同时从多台计算机附加到位于HDFS上的文件?类似于存储由多个进程不断产生的事件流的东西。订单并不重要。

我记得在Google技术演示文稿中听到GFS支持此类附加功能,但尝试使用HDFS进行一些有限的测试(使用常规文件追加()或使用SequenceFile)似乎不起作用。

谢谢,

2 个答案:

答案 0 :(得分:12)

我不认为HDFS可以实现这一点。即使您不关心记录的顺序,也要关心文件中字节的顺序。您不希望编写器A编写部分记录,然后由编写器B损坏。这是HDFS自身解决的难题,因此它不会。

为每个作家创建一个文件。将所有文件传递给需要读取此数据的任何MapReduce工作程序。这更简单,适合HDFS和Hadoop的设计。如果非MapReduce代码需要将此数据作为一个流读取,则可以按顺序流式传输每个文件,也可以编写一个非常快速的MapReduce作业来合并文件。

答案 1 :(得分:7)

仅供参考,可能它在hadoop 2.6.x中得到完全支持,在官方网站上的JIRA项目中得到支持:https://issues.apache.org/jira/browse/HDFS-7203