복붙노트

[HADOOP] 분할 크기 대 블록 크기 (하둡)

HADOOP

분할 크기 대 블록 크기 (하둡)

Hadoop의 분할 크기와 블록 크기 간의 관계는 무엇입니까? 내가 읽었을 때 분할 크기는 블록 크기의 n 배가되어야합니다 (n은 정수이고 n> 0). 맞습니까? 분할 크기와 블록 크기간에 어떤 관계가 있어야합니까?

해결법

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

    1.HDFS 아키텍처에는 블록 개념이 있습니다. HDFS에서 사용되는 일반적인 블록 크기는 64MB입니다. 대용량 파일을 HDFS에 넣을 때, 블록의 기본 구성을 기준으로 64MB 덩어리로 자르고, 1GB의 파일이 있고 그 파일을 HDFS에 저장하려고한다고 가정하면 1GB / 64MB = 16 split / blocks이고이 블록은 DataNode를 통해 배포됩니다. 이러한 블록 / 청크는 클러스터 구성에 따라 다른 DataNode에 상주합니다.

    HDFS 아키텍처에는 블록 개념이 있습니다. HDFS에서 사용되는 일반적인 블록 크기는 64MB입니다. 대용량 파일을 HDFS에 넣을 때, 블록의 기본 구성을 기준으로 64MB 덩어리로 자르고, 1GB의 파일이 있고 그 파일을 HDFS에 저장하려고한다고 가정하면 1GB / 64MB = 16 split / blocks이고이 블록은 DataNode를 통해 배포됩니다. 이러한 블록 / 청크는 클러스터 구성에 따라 다른 DataNode에 상주합니다.

    데이터 분할은 파일 오프셋을 기반으로 발생합니다. 파일을 분할하여 다른 블록에 저장하는 목표는 병렬 처리 및 데이터 페일 오버입니다.

    블록 크기와 분할 크기의 차이.

    분할은 논리적으로 데이터를 분할하는 것으로, 기본적으로 Hadoop 에코 시스템에서 Map / Reduce 프로그램이나 다른 데이터 처리 기술을 사용하여 데이터를 처리하는 동안 사용됩니다. 분할 크기는 사용자가 정의한 값이며 데이터 양 (처리중인 데이터의 양)에 따라 자체 분할 크기를 선택할 수 있습니다.

    Split은 기본적으로 Map / Reduce 프로그램의 Mapper 수를 제어하는 ​​데 사용됩니다. Map / Reduce 프로그램에서 입력 분할 크기를 정의하지 않은 경우 기본 HDFS 블록 분할은 입력 분할로 간주됩니다.

    예:

    파일이 100MB이고 HDFS 기본 블록 구성이 64MB라고 가정하면 2 분할로 잘라내어 2 블록을 차지합니다. 이제이 데이터를 처리 할 Map / Reduce 프로그램이 있지만 블록 수 (2 블록)를 기반으로 입력 분할을 지정하지 않은 경우 Map / Reduce 처리를 위해 입력 분할이 고려되고 이에 대한 2 개의 매퍼가 할당됩니다 일.

    그러나 Map / Reduce 프로그램에서 분할 크기 (100MB)를 지정한 다음 두 블록 (2 블록)이 Map / Reduce 처리를위한 단일 분할로 간주되고이 매퍼에 대해 1 매퍼가 할당된다고 가정하십시오.

    Map / Reduce 프로그램에서 분할 크기 (예 : 25MB)를 지정한 다음 Map / Reduce 프로그램에 4 개의 입력 분할이 있고 작업에 4 개의 매퍼가 할당된다고 가정하십시오.

    결론:

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

    2.

    희망이 도움이됩니다.

  3. ==============================

    3.Split 생성은 사용중인 InputFormat에 따라 다릅니다. 아래 다이어그램에서는 FileInputFormat의 getSplits () 메서드가 두 개의 다른 파일에 대한 분할을 결정하는 방법을 설명합니다. Split Slope (1.1)에서 수행되는 역할에 유의하십시오.

    Split 생성은 사용중인 InputFormat에 따라 다릅니다. 아래 다이어그램에서는 FileInputFormat의 getSplits () 메서드가 두 개의 다른 파일에 대한 분할을 결정하는 방법을 설명합니다. Split Slope (1.1)에서 수행되는 역할에 유의하십시오.

    분할을 수행하는 해당 Java 소스는 ​​다음과 같습니다. 위의 computeSplitSize () 메소드는 Max (minSize, min (maxSize, blockSize))로 확장되며, 여기서 mapreduce.input.fileinputformat.split.minsize / maxsize를 설정하여 최소 / 최대 크기를 구성 할 수 있습니다.

  4. from https://stackoverflow.com/questions/30549261/split-size-vs-block-size-in-hadoop by cc-by-sa and MIT license