복붙노트

[HADOOP] 하둡 SequenceFile에의 InputStream

HADOOP

하둡 SequenceFile에의 InputStream

나는 일련의 파일을 나타내는 일반적인 입력 스트림을 가지고있다. 나는 밖으로 디스크에 임시 파일로 출력 스트림을 쓸 필요로에서하는 SequenceFile.Reader, 또는 유사한 클래스를 생성하고 싶습니다. 내가 나를 InputStream로부터 키 / 값 쌍을 읽을 수 있도록 무언가에 입력 스트림에서 가고 싶은 무언가가있다.

해결법

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

    1.몇 가지 이유를 들어, 현재 SequenceFile.Reader 클래스의 모든 문서가있을 나타나지 않지만 하둡 2.0의 코드를 통해보고, 나는 다음과 일하는 것이 생각 :

    몇 가지 이유를 들어, 현재 SequenceFile.Reader 클래스의 모든 문서가있을 나타나지 않지만 하둡 2.0의 코드를 통해보고, 나는 다음과 일하는 것이 생각 :

    FSDataInputStream inputStream = new FSDataInputStream (rawInputStream);
    Option isOption = SequenceFile.Reader.stream(inputStream);
    SequenceFile.Reader reader = new SequenceFile.Reader(hadoopConf,isOption);
    

    옵션 시작하고 시작 시퀀스 파일을 읽기 전에 건너 뛸 얼마나 많은 바이트 길이, 길이가 스트림에서 읽을 얼마나 많은 바이트에서 당신은 또한에 관심이있을 수 있습니다. 그 독자는 다음과 같을 수 설정 :

    FSDataInputStream inputStream = new FSDataInputStream (rawInputStream);
    Option isOption = SequenceFile.Reader.stream(inputStream);
    Option lengthOption = SequenceFile.Reader.length(100000);
    Option startOption = SequenceFile.Reader.start(10);
    SequenceFile.Reader reader = new SequenceFile.Reader(hadoopConf,isOption,lengthOption,startOption);
    

    당신이 당신의 리더를 구축 한 후 마지막으로, 같은 당신의 가치를 읽을 수 있습니다 :

    Text key = new Text();
    Text val = new Text();
    while (reader.next(key,val)) {
       //do stuff
    }
    

    다시 말하지만, 나는 모든이 코드를 테스트하지 않은, 그러나 이것은 이론적으로 작동합니다. 당신은 하둡 2.0 이상을 사용하지 않는 경우에, 나는 당신에게 무엇을 모르겠어요.

  2. from https://stackoverflow.com/questions/22919013/inputstream-to-hadoop-sequencefile by cc-by-sa and MIT license