2016-11-27 3 views
0

Hadoop의 DataNode 수를 설정하는 방법은 무엇입니까? 그것은 코드, 구성 또는 환경 결정에 의한 것입니다. 또한 "서핑을하는 동안 기사가"노드 당 약 10-100 개의지도를 선호하므로 "노드는 여기에서 NameNode 또는 DataNode를 의미합니까?Hadoop의 DataNode 및 MapTasks 수

MapTasks의 수에 대해 이야기 할 때 일부는 분할 수와 같고 다른 수는 블록 수라고 말하면서 다른 수식은 프레임 워크에 의해 결정되며 분할 또는 블록의 정확한 수를 제공하지 않을 수 있다고합니다 , 그래서 그들에게서 옳은가?

답변

1

질문 : Hadoop의 DataNode 수를 설정하는 방법은 무엇입니까?

데이터 노드 수를 설정하거나 계산하는 데 사용됩니다.

H = C R S/(1-I)

:

C = 평균 압축 우선 하둡 저장 (H) 견적 비율. 사용 된 압축 유형 (Snappy, LZOP, ...) 및 데이터 크기에 따라 다릅니다. 압축을 사용하지 않으면 c = 1입니다.

r = 복제 인자. 일반적으로 프로덕션 클러스터에서는 3입니다.

S = Hadoop으로 옮길 데이터의 크기. 이는 히스토리 데이터와 증분 데이터의 조합이 될 수 있습니다. 증분 데이터는 예를 들어 일일 일 수 있으며 일정 기간 (예 : 3 년) 동안 예상 할 수 있습니다.

i = 중간 인자. 대개 1/3 또는 1/4입니다. 하둡의 작업 공간은 맵 단계의 중간 결과를 저장하는 데 전념합니다.

예 : 상기 가정과 .25 = 4분의 1

H= 1*3*S/(1-1/4)=3*S/(3/4)=4*S 

없이 압축 즉, C = 1, 3의 복제 인자, 중간 계수는 하둡 스토리지는 4로 추정되는 초기 데이터 크기의 크기를 곱합니다.

지금 수식 데이터 노드 (N)의 수를 추정하기 : S/(1-I)

N = H/D = C R * D를

곳 :

d = 노드 당 사용 가능한 디스크 공간.

질문 : "노드 당 10-100 개 정도의 맵이 기본 설정되어 있으므로"여기 "노드"는 NameNode 또는 DataNode를 의미합니까?

MapReduce 작업은 처리를위한 데이터로 이동하지만 그 반대의 경우는 사실이 아닙니다.그래서 여기서 "노드"는 데이터 노드입니다.

질문 : 얼마나 많은지도가 있습니까?

맵의 수는 일반적으로 입력의 전체 크기이다 , 입력 파일의 총 블록 수에 의해 구동된다.

오른쪽 CPU 수준의 맵 작업을 위해지도가 300 개까지 설정되었지만 맵의 병렬 처리 수준은 노드 당 약 10-100 개의 맵인 것으로 나타났습니다 (노드 당 ). 작업 설정에는 다소 시간이 걸리므로 맵에 분이 걸리는 것이 가장 좋습니다.

당신이 입력 데이터의 10TB를 havve과 (단지 framework에 대한 힌트를 제공) Configuration.set(MRJobConfig.NUM_MAPS, int) 그것이 더 높은 설정하는 데 사용되지 않는 128메가바이트의 블록 크기, 당신은, 82000지도하게 될 겁니다합니다.

+0

확인을 위해 게시물의 마지막 부분을 제거했습니다. 당신이 wiki에서 내용을 인용하기 때문에 틀릴 수 없습니다. –

+0

단어로 재생, Nice ... !!. 좋습니다. –

+0

https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html지도의 수와 관련하여 동일 함을 확인하십시오. –