복붙노트

[HADOOP] MultipleOutputFormat 파일 하위 경로 제어

HADOOP

MultipleOutputFormat 파일 하위 경로 제어

감속기 키를 기반으로 MultipleOutputFormat에 의해 관리되는 서로 다른 여러 파일의 하위 경로를 제어해야합니다.

기본적으로 감속기에 제공된 키를 기반으로 파일의 하위 경로를 설정하려고합니다.

MultipleOutputFormat의 generateFileNameForKeyValue 메서드를 오버플로하여 파일 이름을 변경할 수 있습니다. 어떻게 이러한 파일의 하위 경로도 변경할 수 있습니까?

generateFileNameForKeyValue를 재정의 (override)하면됩니다.

mySetJobConfigOutputPath/fileNameBasedKey1.dat
                        /fileNameBasedKey2.dat
                        /fileNameBasedKey3.dat
                        ...

하지만 아래 파일을 정리하고 싶습니다.

 mySetJobConfigOutputPath/path0ConfiguredInsideReducerBasedOnKey/fileNameBasedKey1.dat

                         /path1ConfiguredInsideReducerBasedOnKey/fileNameBasedKey2.dat
                                                                /fileNameBasedKey3.dat

                         /path2ConfiguredInsideReducerBasedOnKey/fileNameBasedKey8.dat

위에서 볼 수 있듯이 하위 경로와 파일 이름은 모두 감속기 내부의 키로 계산됩니다.

파일 이름을 구성하는 방법을 알고 있지만 mySetJobConfigOutputPath 폴더 아래에 각 파일의 하위 경로를 구성 할 수 있는지 궁금합니다.

해결법

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

    1.그 getInputFileBasedOutputFileName 메서드를 재정의 할 수도 있고 거기에 하위 경로를 줄 수 있다는 것을 알았습니다.

    그 getInputFileBasedOutputFileName 메서드를 재정의 할 수도 있고 거기에 하위 경로를 줄 수 있다는 것을 알았습니다.

    @Override
    protected String getInputFileBasedOutputFileName(JobConf conf, String Name)
    {
         //your logic goes here. Simply addd the sub path to the name and return    
    }
    

    리드 파일 이름을 키로 변환하려면 generateFileNameForKeyValue를 구현해야합니다.

    업데이트 : 기본적으로이 모든 것을 설명합니다 http://www.infoq.com/articles/HadoopOutputFormat

  2. from https://stackoverflow.com/questions/11237797/control-the-multipleoutputformat-files-sub-path by cc-by-sa and MIT license