gpt4 book ai didi

java - Hadoop 追加到 Sequencefile

转载 作者:可可西里 更新时间:2023-11-01 14:53:33 28 4
gpt4 key购买 nike

目前我使用以下代码附加到现有的 SequenceFile:

// initialize sequence writer
Writer writer = SequenceFile.createWriter(
FileContext.getFileContext(this.conf),
this.conf,
new Path("/tmp/sequencefile"),
Text.class,
BytesWritable.class,
CompressionType.NONE,
null,
new Metadata(),
EnumSet.of(CreateFlag.CREATE, CreateFlag.APPEND),
CreateOpts.blockSize(64 * 1024 * 1024));

writer.append(key, value);

// close writer
writer.hsync();
writer.close();

如果序列文件不存在,一切正常,但当文件存在时,Hadoop 再次在文件中间写入 SequenceFile header (SEQ ...),Hadoop 无法读取该文件。

我使用 Hadoop 2.6.0

最佳答案

我认为不可能附加到现有的序列文件。我分析了2.5.2和2.6.0-CDH5.5的源码。在 Writer 的每个构造函数中都写入了“序列文件头”(来自 init 函数)。

有支持此功能的路径https://issues.apache.org/jira/browse/HADOOP-7139但没有推送到官方发布。

更新:问题 HADOOP-7139 现在已经关闭,从版本 2.6.1/2.7.2 可以附加到现有的 SequenceFile :)

关于java - Hadoop 追加到 Sequencefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com