小编Mat*_*t D的帖子

HDFS:使用HDFS API附加到SequenceFile

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

// 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();
Run Code Online (Sandbox Code Playgroud)

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

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

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

任何想法或解决方法?谢谢.

hadoop hdfs

4
推荐指数
1
解决办法
4253
查看次数

标签 统计

hadoop ×1

hdfs ×1