복붙노트

[HADOOP] 다중 입력은 : 비교를 위해 여러 매퍼에 동일한 입력을 추가

HADOOP

다중 입력은 : 비교를 위해 여러 매퍼에 동일한 입력을 추가

I는 입력과 같은 폴더에서 어떤 파일을 가지고 소인 입력으로서 부여하는 파일 맵퍼 결정있는 파일의 이름에 기초하여 두 개의 매퍼 클래스가있다. 때때로 그렇게 동일한 입력 파일이 서로 다른 두 매퍼에 대한 입력으로 제공되도록 발생한다. 지금은 두 개의 서로 다른 입력이 모두 매퍼에 제공 할 때 작동하도록 테스트했지만 내가 그들에게 동일한 입력을 제공하는 경우, 다음 매퍼 클래스 중 하나는 감속기의 비교를 위해 사용되는 결과를 생성하지 않습니다.

코드는 엄청난 그래서 대신에 여기를 가하고, 나는 내가 한 일을 설명 할 것이다. 내가 타임 스탬프를 가지고있는 파일의 이름을 기반으로 디렉토리에있는 파일을 통해 두 목록 및 스캔을 생성하고, 내가 다른 사용할 수 있도록 둘 다 다르게 계산된다, 즉 두 개의 서로 다른 목록에 넣어 다음 두 가지 매퍼에 추가 맵퍼는 감속기에 비교하는 데 사용되는, 계산,하지만 모두 매퍼에 대한 시간 기준과 동일한 입력 파일이 때 어떤 결과를 생성하지 않는 매퍼 중 하나 거의 동일합니다. 하나 매퍼를 사용하는 다른 있기 때문에 파일에 액세스 할 수 없으며 그런 경우가이 주변에 어떤 방법이기 때문에 그래서이다.

MapPath를 2 다른 동안 여기 MapPath를 1은 하나 개의 목록은

for(i=0;i<MapPath1.size();i++)
      MultipleInputs.addInputPath(job,new Path(MapPath1.get(i)),TextInputFormat.class,Map1.class);
if(type.equals("comparative"))
      for(i=0;i<MapPath2.size();i++)
            MultipleInputs.addInputPath(job,new Path(MapPath2.get(i)),TextInputFormat.class,Map2.class); 

최신 정보

난 그냥이 질문 (하둡의 여러 매퍼) 광산과 유사하게 발견하지만 난 그게 클 수있는 입력 파일을 복제되고 싶지 않아. 하나는 내가 다른 매퍼를 사용하여 두 개의 별도의 일자리를 창출 할 수있는 방법에 저를 지시하고 하나의 감속기에 제공 할 수 있습니다.

해결법

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

    1.매퍼 모두 동일한 작업 추적기 노드와 중간 매퍼 출력 위치에 출시지고 있다는 내 생각 엔 모두 매퍼 작업을 공유 - 당신이지도 작업이를 확인하기 위해 시작하는 작업 추적기 노드를 확인해야합니다.

    매퍼 모두 동일한 작업 추적기 노드와 중간 매퍼 출력 위치에 출시지고 있다는 내 생각 엔 모두 매퍼 작업을 공유 - 당신이지도 작업이를 확인하기 위해 시작하는 작업 추적기 노드를 확인해야합니다.

    또한 제로로 작업을 줄이고 출력을 확인할 수를 설정하여, 매퍼 (들)에만 작업을 실행해야합니다 -이 출력 디렉토리를 공유되지 않은 매퍼를 확인하는 것입니다.

    문제에 솔루션을 제공합니다 - 당신이 매퍼 및 데이터로부터 모두 하나의 감속기에 주어진 매퍼 모두 같은 파일을 전달하는 것처럼 들린다. 이것은 약간의 중복을 가지고, 당신의 작업 출력이 중복이 괜찮인가?

  2. from https://stackoverflow.com/questions/25860959/multiple-inputs-adding-same-input-to-multiple-mappers-for-comparison by cc-by-sa and MIT license