[HADOOP] HDFS에서 "mapred.min.split.size"매개 변수의 동작
HADOOPHDFS에서 "mapred.min.split.size"매개 변수의 동작
매개 변수 "mapred.min.split.size"는 파일이 이전에 작성된 블록의 크기를 변경합니까? JOB을 시작할 때 매개 변수 "mapred.min.split.size"를 134217728 (128MB)의 값으로 전달하는 상황을 가정합니다. 무슨 일이 일어나는가에 대해 옳은 말은 무엇입니까?
1 - 각 MAP은 2 개의 HDFS 블록에 해당하는 프로세스를 처리합니다 (각 블록이 64MB라고 가정).
2 - HDFS 128M에서 블록을 차지하기 위해 입력 파일 (이전에 포함 된 HDFS 포함)의 새로운 부분이있을 것입니다.
해결법
-
==============================
1.분할 크기는 다음 공식으로 계산됩니다.
분할 크기는 다음 공식으로 계산됩니다.
max(mapred.min.split.size, min(mapred.max.split.size, dfs.block.size))
귀하의 경우 그것은 될 것입니다 :
split size=max(128,min(Long.MAX_VALUE(default),64))
그래서 위의 추론 : -
그러나 블록 크기보다 큰 최소 분할 크기를 만들면 분할 크기가 증가하지만 지역적 비용은 발생합니다.
-
==============================
2.최소 분할 크기가 128MB로 정의되고 최소 블록 크기가 64MB로 정의된다고 가정하십시오.
최소 분할 크기가 128MB로 정의되고 최소 블록 크기가 64MB로 정의된다고 가정하십시오.
참고 : 기본적으로 각 블록은 HDFS에 의해 3 개의 다른 데이터 노드에 복제됩니다. 또한 각지도 작업은 단일 블록에서 작업을 수행합니다.
따라서 128MB 분할 크기는 2 블록을 단일 블록으로 간주하여 단일 데이터 노드에서 실행되는 단일 맵 작업을 만듭니다. 이것은 데이터 지역성을 희생 시켜서 발생합니다. "데이터 지역성의 비용"이라는 말은지도 작업이 실행되고 있지 않은 데이터 노드에있는 블록을 말하는 것입니다. 해당 데이터 노드에서 가져와야하는 데이터는 맵 작업이 실행되는 데이터 노드에서 처리되므로 성능이 저하됩니다.
그러나 기본 파일 크기가 64MB이고 기본 최소 분할 크기가 64MB 인 크기가 128MB 인 파일을 고려할 경우이 경우 일반적으로 두 가지 맵 작업이 각 64MB 블록에 대해 생성됩니다.
from https://stackoverflow.com/questions/19188315/behavior-of-the-parameter-mapred-min-split-size-in-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 실행중인 데이터 노드가 0 개이고이 작업에서 노드가 제외되지 않았습니다. (0) | 2019.05.31 |
---|---|
[HADOOP] Hadoop / HDFS 파일 분할 정보 (0) | 2019.05.31 |
[HADOOP] 분할 크기 대 블록 크기 (하둡) (0) | 2019.05.31 |
[HADOOP] Hadoop 내에서 여러 파일을 하나로 병합 (0) | 2019.05.31 |
[HADOOP] 하이브에 ORC로 저장된 테이블에 .txt 파일의 데이터로드 (0) | 2019.05.31 |