복붙노트

[HADOOP] MapReduce 작업이 원격 데이터에 액세스하는 것을 제한 할 수 있습니까?

HADOOP

MapReduce 작업이 원격 데이터에 액세스하는 것을 제한 할 수 있습니까?

HDFS와 통합하려는 특정 알고리즘이 있습니다. 알고리즘을 사용하려면 데이터를 로컬로 액세스해야합니다 (작업은 Mapper에서만 수행됩니다). 그러나 파일 배포와 관련하여 HDFS를 활용하고자합니다 (안정성 및 스트라이핑 제공). 계산이 수행 된 후에는 추가 작업을 수행하는 대신 감속기를 사용하여 간단히 답을 전송합니다. 네트워크 사용을 피하는 것이 명백한 목표입니다. MapReduce 작업이 시작될 때 로컬 DataNode에만 액세스 할 수 있도록 네트워크 데이터 액세스를 제한 할 수있는 구성 설정이 있습니까?

업데이트 : 약간의 컨텍스트 추가

우리는 문자열 일치로이 문제를 분석하려고 시도하고 있습니다. 클러스터에 N 개의 노드가 있고 파일이 NGB의 텍스트로 저장되어 있다고 가정합니다. 파일은 HDFS에 저장되고 노드에 균등 한 부분으로 분산됩니다 (노드 당 1 부분). 각 노드에서 하나의 프로세스를 실행하여 동일한 호스트에있는 파일의 일부에 액세스하는 MapReduce 작업을 만들 수 있습니까? 아니면 MapReduce 프레임 워크가 불규칙하게 작업을 배포합니까? (예 : 데이터의 N 부분에 액세스하는 작업 1 개 또는 전체 파일을 처리하려고하는 0.5N 노드?

해결법

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

    1.reduce 작업의 수를 0으로 설정하면 셔플 링을 건너 뛰고 따라서 알고리즘의 네트워크 비용을 건너 뛸 수 있습니다.

    reduce 작업의 수를 0으로 설정하면 셔플 링을 건너 뛰고 따라서 알고리즘의 네트워크 비용을 건너 뛸 수 있습니다.

    작업을 생성하는 동안 다음 코드 행을 사용하여이 작업을 수행 할 수 있습니다.

    job.setNumReduceTasks(0);
    

    알고리즘이 무엇을할지 모르지만 특정 단어의 발생을 찾는 패턴 일치 알고리즘이라고 말하면 매퍼는 분할 당 일치 수를보고합니다. 카운트를 추가하려면 네트워크 통신과 감속기가 필요합니다.

    내가 찾은지도 전용 예에서 첫 번째 Google 검색 : 지도 전용 MR 작업

  2. ==============================

    2.감속기를 0으로 설정하면 데이터 지역이 늘어납니다. 즉, Mappers에서 생성 된 중간 데이터는 HDFS에 저장됩니다. 물론 중간 데이터를 저장할 노드를 선택하지 않아도되고 크기가 매퍼 슬롯 * 블록 크기보다 큰 경우 원격 액세스는 기아를 피하려고 시도합니다. 나의 조언은 지연 스케줄러를 사용하여 locality-delay-node-ms와 locality-delay-rack-ms를 큰 값 (즉, 매퍼의 예상 최대 실행 시간)으로 설정하는 것입니다. 그러면 원격으로 데이터를 요청하기 전에 지연 스케줄러가 가능한 많이 대기하게됩니다. 그러나 이로 인해 리소스가 부족하여 실행 시간이 길어질 수 있습니다 (예 : 데이터 블록을 저장하지 않는 노드는 오랜 시간 동안 지연 될 수 있음 - 지연 노드 -ms + 지역성 - 지연 랙 -ms).

    감속기를 0으로 설정하면 데이터 지역이 늘어납니다. 즉, Mappers에서 생성 된 중간 데이터는 HDFS에 저장됩니다. 물론 중간 데이터를 저장할 노드를 선택하지 않아도되고 크기가 매퍼 슬롯 * 블록 크기보다 큰 경우 원격 액세스는 기아를 피하려고 시도합니다. 나의 조언은 지연 스케줄러를 사용하여 locality-delay-node-ms와 locality-delay-rack-ms를 큰 값 (즉, 매퍼의 예상 최대 실행 시간)으로 설정하는 것입니다. 그러면 원격으로 데이터를 요청하기 전에 지연 스케줄러가 가능한 많이 대기하게됩니다. 그러나 이로 인해 리소스가 부족하여 실행 시간이 길어질 수 있습니다 (예 : 데이터 블록을 저장하지 않는 노드는 오랜 시간 동안 지연 될 수 있음 - 지연 노드 -ms + 지역성 - 지연 랙 -ms).

  3. from https://stackoverflow.com/questions/31789176/is-it-possible-to-restrict-a-mapreduce-job-from-accessing-remote-data by cc-by-sa and MIT license