2016-09-15 3 views
1

YARN에서 관리하는 30 노드 Hadoop MR2 클러스터가 있습니다. 현재 10 개의 Oozie 작업이 있으며 각 작업에는 단일 Map 프로그램이 실행됩니다. 30 개 노드 중 11 개 노드 만 실제로 활용되고 있음을 알았습니다. 맵 프로그램을 실행하는 컨테이너가있는 노드는 11 개뿐입니다.모든 노드가 클러스터에서 사용되지 않습니다.

나는 각 노드에 최소한 하나의 컨테이너가 실행될 것으로 기대한다. 왜 그런 경우가 아닙니까? 입력 분할로 인한 것입니까, HDFS 블록 크기 설정에 기반한 것인가, 입력 데이터는 11 개의 노드로 가장 잘 분할 되었습니까? 그렇다면 모든 노드가 활용되도록 블록 크기를 조정하는 것이 더 최적일까요?

+0

30 개의 노드가 모두 데이터 노드입니까? 귀하의 데이터가 너무 희박해서 모든 노드가 필요하지 않다고 생각합니다. 데이터 지역이 업무를 수행하고있는 것 같습니다. –

+0

Hadoop/Big Data 표준에 따르면 80GB의 플랫 파일이 희소성이 있다고 보입니까? 우리가 같은 언어로 말하고 있는지 확인하고 싶습니다. – Neeko

+0

각 디스크의 크기에 따라 다르지만, 그게 큰 디스크가 아닙니다. –

답변

2

요청에 따라 리소스 관리자는 필요한 리소스를 클러스터에 할당합니다. 이러한 자원은 맵 축소 작업을 실행하는 컨테이너에 사용됩니다.

충분한 리소스가있는 경우 데이터 노드는 둘 이상의 컨테이너를 호스팅 할 수 있습니다. hadoop에서 데이터가 아닌 역으로 이동되는 컴퓨팅이라는 사실을 잊지 마십시오. mapreduce 작업을 실행중인 데이터 노드는 처리중인 데이터를 저장하는 노드 일 가능성이 큽니다. 데이터 블록에 의존하는 입력 나누기는 계산과 관련된 호스트에 직접 영향을주지 않습니다.

모든 노드가 실행되어야한다고 생각하는 것은 좋지 않은 생각입니다. 가장 큰 데이터를 사용하면 가능한 적은 데이터로 이동합니다.

관련 문제