복붙노트

[HADOOP] hadoop-총 매퍼가 결정되는 방법

HADOOP

hadoop-총 매퍼가 결정되는 방법

나는 hadoop을 처음 사용하고 oracle의 virtualbox와 hortonworks의 sandbox를 설치했습니다. 그런 다음 최신 버전의 hadoop을 다운로드하고 jar 파일을 Java 프로그램으로 가져 왔습니다. 샘플 단어 수 프로그램을 복사하고 새로운 jar 파일을 만들었습니다. 샌드 박스를 사용하여이 jar 파일을 작업으로 실행합니다. 단어 수는 예상대로 완벽하게 작동합니다. 그러나 내 작업 상태 페이지에서 입력 파일에 대한 매퍼 수는 28로 결정됩니다. 입력 파일에는 다음 줄이 있습니다.

Ramesh는 XXXXXXXXXX XX XXXXX XX XXXXXXXXX에서 공부하고 있습니다.

총 매퍼는 28로 어떻게 결정됩니까?

확인하기 위해 wordcount.java 프로그램에 아래 줄을 추가했습니다.

FileInputFormat.setMaxInputSplitSize(job, 2);

또한 입력 파일에 2 행만 포함될 수 있는지 알고 싶습니다. (즉) 아래와 같이 입력 파일이 있다고 가정하십시오.

row1, row2, row3, row4, row5, row6 ....... row20

입력 파일을 각각 2 개의 행만있는 20 개의 다른 파일로 분할해야합니까?

해결법

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

    1.즉, 28 개의 맵 작업이 예약되었지만 총 28 개의 병렬 맵 작업이 아닐 수 있기 때문에 입력 파일이 HDFS에서 약 28 개의 부분 (블록)으로 분할됩니다. 병렬 처리는 클러스터에있는 슬롯 수에 따라 다릅니다. Apache Hadoop과 관련하여 이야기하고 있습니다. Horton의 작품이 이것으로 수정되었는지는 모르겠습니다.

    즉, 28 개의 맵 작업이 예약되었지만 총 28 개의 병렬 맵 작업이 아닐 수 있기 때문에 입력 파일이 HDFS에서 약 28 개의 부분 (블록)으로 분할됩니다. 병렬 처리는 클러스터에있는 슬롯 수에 따라 다릅니다. Apache Hadoop과 관련하여 이야기하고 있습니다. Horton의 작품이 이것으로 수정되었는지는 모르겠습니다.

    하둡은 대용량 파일 작업을 좋아하므로 입력 파일을 20 개의 다른 파일로 분할 하시겠습니까?

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

    2.HDFS 블록과 MapReduce 분할은 서로 다른 두 가지입니다. 블록은 데이터의 물리적 분할이며, 분할은 MR 작업 중에 수행되는 논리적 분할입니다. 주어진 세트 데이터로부터 스플릿을 생성하는 것은 InputFormat의 의무이며, 스플릿 수에 따라 매퍼의 수가 결정됩니다. setMaxInputSplitSize를 사용하면이 동작을 무시하고 자신 만의 Split 크기를 제공합니다. 그러나 아주 작은 스플릿이 많기 때문에 setMaxInputSplitSize에 매우 작은 값을 지정하면 과잉이 될 수 있으며 불필요한 Map 작업이 많이 발생합니다.

    HDFS 블록과 MapReduce 분할은 서로 다른 두 가지입니다. 블록은 데이터의 물리적 분할이며, 분할은 MR 작업 중에 수행되는 논리적 분할입니다. 주어진 세트 데이터로부터 스플릿을 생성하는 것은 InputFormat의 의무이며, 스플릿 수에 따라 매퍼의 수가 결정됩니다. setMaxInputSplitSize를 사용하면이 동작을 무시하고 자신 만의 Split 크기를 제공합니다. 그러나 아주 작은 스플릿이 많기 때문에 setMaxInputSplitSize에 매우 작은 값을 지정하면 과잉이 될 수 있으며 불필요한 Map 작업이 많이 발생합니다.

    실제로 FileInputFormat.setMaxInputSplitSize (job, 2)를 사용할 필요가 없습니다. 당신의 WC 프로그램에서. 또한, 여기 2를 잘못 생각한 것 같습니다. 파일의 행 수가 아닙니다. MR 작업에 필요한 분할 크기입니다. MR 입력으로 사용할 파일에 원하는 수의 라인이있을 수 있습니다.

    괜찮습니까?

  3. from https://stackoverflow.com/questions/17195708/hadoop-how-total-mappers-are-determined by cc-by-sa and MIT license