복붙노트

[HADOOP] YARN의 분산 캐시 기능

HADOOP

YARN의 분산 캐시 기능

현재 MAP-REDUCE YARN 프레임 워크를 사용하고 있습니다. 의사 분산 모드에서 hadoop을 사용합니다. 여기에 "분산 캐시"기능을 사용하여 캐시 할 파일을 추가하고 맵 기능에서 사용하려고합니다. 이것을 어떻게 달성 할 수 있습니까?

해결법

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

    1.분산 캐시에 파일을 추가하는 방법 :

    분산 캐시에 파일을 추가하는 방법 :

    .

    hadoop jar <application jar> <main class> <input> <output> -files <absolute path to distributed cache file>
    

    .

    job.addCacheFile(uri); 
    

    hadoop -files 옵션 또는 분산 캐시 API는 캐시 파일을 모든 작업 노드에 복사하여 실행 중에 매퍼 / 감속기에 사용할 수 있도록합니다.

    분산 캐시에 액세스하는 방법 :

    매퍼 / 감속기의 설정 방법을 재정의하고 컨텍스트에서 getCacheFiles를 호출하십시오. 아래 샘플 코드 :

        @Override
        protected void setup(Context context)
                throws IOException, InterruptedException {
    
            Path[] localPaths = context.getCacheFiles();
            if (localPaths.length == 0) {
                throw new FileNotFoundException("Distributed cache file not found.");
            }
            File localFile = new File(localPaths[0].toString());
            // code to process cache file
    
        }
    

    context.getCacheFiles 메소드는 구성에 설정된 파일의 URI 배열을 리턴합니다.

  2. from https://stackoverflow.com/questions/27185178/distributed-cache-feature-in-yarn by cc-by-sa and MIT license