首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HDFS:使用HDFS追加到SequenceFile

HDFS:使用HDFS追加到SequenceFile
EN

Stack Overflow用户
提问于 2011-04-08 17:02:07
回答 2查看 4.4K关注 0票数 4

我一直试图使用Java在HDFS上创建和维护序列文件,而不运行MapReduce作业作为未来MapReduce作业的设置。我希望将MapReduce作业的所有输入数据存储在一个序列文件中,但是这些数据会在一天中随时间增加。问题是,如果存在SequenceFile,下面的调用将只是覆盖SequenceFile,而不是附加到它。

代码语言:javascript
复制
// fs and conf are set up for HDFS, not as a LocalFileSystem
seqWriter = SequenceFile.createWriter(fs, conf, new Path(hdfsPath),
               keyClass, valueClass, SequenceFile.CompressionType.NONE);
seqWriter.append(new Text(key), new BytesWritable(value));
seqWriter.close();

另一个问题是,我无法维护自己格式的文件,无法在一天结束时将数据转换为SequenceFile,因为可以在任何时候使用该数据启动MapReduce作业。

我找不到任何其他API调用来附加到SequenceFile并维护其格式。我也不能简单地连接两个SequenceFiles,因为它们的格式需要。

我还想避免为此运行一个MapReduce作业,因为它对我要添加到SequenceFile中的少量数据具有很高的开销。

有什么想法或工作吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-09-10 20:02:33

通过增强JIRA:https://issues.apache.org/jira/browse/HADOOP-7139,ApacheHadoop2.6.1和2.7.2版本都增加了对附加到现有SequenceFiles的支持

例如,可以阅读测试用例:https://github.com/apache/hadoop/blob/branch-2.7.2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFileAppend.java#L63-L140

CDH5用户可以在CDH5.7.1版本上找到相同的功能。

票数 6
EN

Stack Overflow用户

发布于 2011-04-08 20:34:19

对不起,目前Hadoop FileSystem不支持追加。但在未来的发行版中也有计划。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5598400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档