0

我在 Eclipse 中使用 Hadoop 1.0.4,在使用序列文件编写器时,我遇到了 Eclipse 的错误。这是我的代码

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.Writer;
import org.apache.hadoop.io.compress.GzipCodec;



public class filemerge {

    public static void main(String[] args) throws IOException {

        Configuration conf = new Configuration();
        FileSystem hdfs  = FileSystem.getLocal(conf);
        FileSystem local = FileSystem.getLocal(conf);

        Path inputDir = new Path(args[0]);
        Path hdfsFile = new Path(args[1]);

        IntWritable key = null;
        BytesWritable value = null;



        try {
            FileStatus[] inputFiles = local.listStatus(inputDir);
            FSDataOutputStream out = hdfs.create(hdfsFile);
            if ((conf != null) && (args[0] != null)) {
                SequenceFile.Writer writer = SequenceFile.createWriter(conf, Writer.file(out),
                        Writer.compression(SequenceFile.CompressionType.RECORD, new GzipCodec()),
                        Writer.keyClass(IntWritable.class), Writer.valueClass(BytesWritable.class));

            for (int i=0; i<inputFiles.length; i++) {
                System.out.println(inputFiles[i].getPath().getName());
                FSDataInputStream in = local.open(inputFiles[i].getPath());
                value = new BytesWritable(in.read());
                key = new IntWritable(i);
                writer.append(key, value);
                in.close();
            }
            out.close();
            IOUtils.closeStream(writer);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

对于所有Writer.compression, Writer.valueClass, Writer.keyClass, 说“类型未定义SequenceFile.Writer”的方法

请帮帮我。

4

0 回答 0