복붙노트

[HADOOP] Hadoop의 시퀀스 파일

HADOOP

Hadoop의 시퀀스 파일

이 시퀀스 파일은 어떻게 생성됩니까? 시퀀스 파일에 대한 링크를 여기에서 보았습니다.

http://wiki.apache.org/hadoop/SequenceFile

이것들은 기본 Java serializer를 사용하여 작성 되었습니까? 시퀀스 파일을 읽으려면 어떻게해야합니까?

해결법

  1. ==============================

    1.시퀀스 파일은 MapReduce 작업에 의해 생성되며 MapReduce 작업간에 데이터를 전송하기위한 공통 형식으로 사용할 수 있습니다.

    시퀀스 파일은 MapReduce 작업에 의해 생성되며 MapReduce 작업간에 데이터를 전송하기위한 공통 형식으로 사용할 수 있습니다.

    다음과 같은 방법으로 읽을 수 있습니다.

    Configuration config = new Configuration();
    Path path = new Path(PATH_TO_YOUR_FILE);
    SequenceFile.Reader reader = new SequenceFile.Reader(FileSystem.get(config), path, config);
    WritableComparable key = (WritableComparable) reader.getKeyClass().newInstance();
    Writable value = (Writable) reader.getValueClass().newInstance();
    while (reader.next(key, value))
      // perform some operating
    reader.close();
    

    또한 SequenceFile.Writer를 사용하여 직접 시퀀스 파일을 생성 할 수 있습니다.

    이 예제에 사용 된 클래스는 다음과 같습니다.

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.SequenceFile;
    import org.apache.hadoop.io.Writable;
    import org.apache.hadoop.io.WritableComparable;
    

    그리고 hadoop-core 메이븐 의존성에 포함되어있다.

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.2.1</version>
    </dependency>
    
  2. ==============================

    2.Lev Khomich의 대답 덕분에 문제가 해결되었습니다.

    Lev Khomich의 대답 덕분에 문제가 해결되었습니다.

    그러나이 솔루션은 잠시 사용이 중단되었으며 새 API는 더 많은 기능과 사용 편의성을 제공합니다.

    hadoop.io.SequenceFile의 소스 코드를 확인하려면 여기를 클릭하십시오.

    Configuration config = new Configuration();
    Path path = new Path("/Users/myuser/sequencefile");
    SequenceFile.Reader reader = new Reader(config, Reader.file(path));
    WritableComparable key = (WritableComparable) reader.getKeyClass()
            .newInstance();
    Writable value = (Writable) reader.getValueClass().newInstance();
    
    while (reader.next(key, value)) {
        System.out.println(key);
        System.out.println(value);
        System.out.println("------------------------");
    }
    reader.close();
    

    추가 정보, Nutch / injector에 의해 생성 된 데이터 파일에 대해 실행되는 샘플 출력은 다음과 같습니다.

    ------------------------
    https://wiki.openoffice.org/wiki/Ru/FAQ
    Version: 7
    Status: 1 (db_unfetched)
    Fetch time: Sun Apr 13 16:12:59 MDT 2014
    Modified time: Wed Dec 31 17:00:00 MST 1969
    Retries since fetch: 0
    Retry interval: 2592000 seconds (30 days)
    Score: 1.0
    Signature: null
    Metadata: 
    
    ------------------------
    https://www.bankhapoalim.co.il/
    Version: 7
    Status: 1 (db_unfetched)
    Fetch time: Sun Apr 13 16:12:59 MDT 2014
    Modified time: Wed Dec 31 17:00:00 MST 1969
    Retries since fetch: 0
    Retry interval: 2592000 seconds (30 days)
    Score: 1.0
    Signature: null
    Metadata: 
    

    감사!

  3. from https://stackoverflow.com/questions/5096128/sequence-files-in-hadoop by cc-by-sa and MIT license