读取hadoop SequenceFile时的java.lang.NoClassDefFoundError

时间:2011-09-26 18:04:33

标签: java hadoop

我正在尝试阅读其中包含自定义SequenceFile的{​​{1}}。

以下是代码:

Writeable

当我运行这个时,我得到以下异常:

public static void main(String[] args) throws IOException {
    //String iFile = null;
    String uri = "/tmp/part-r-00000";
    Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(URI.create(uri), conf);
    Path path = new Path(uri);
    MyClass value = new MyClass();
    SequenceFile.Reader reader = null;
    try {
        reader = new Reader(fs, path, conf);
        while(reader.next(value)){
            System.out.println(value.getUrl());
            System.out.println(value.getHeader());
            System.out.println(value.getImages().size());               
            break;
        }           

    } catch (Exception e) {// Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }
    finally {
        IOUtils.closeStream(reader);
    }

}

所有库都打包到jar文件中并且存在。怎么了,怎么解决这个问题?

1 个答案:

答案 0 :(得分:4)

必须为org.apache.commons.configuration.Configuration类包含hadoop-common - * .jar。将jar作为依赖项。