2013-02-27 3 views
2

TaskTracker에 의해 생성 된 각 프로세스가 특정 cgroup에 할당되는 방식으로 cgroups 또는 Hadoop을 구성 할 수 있습니까?Hadoop : TaskTracker 작업에 cgroup 사용

cgroups을 사용하여 메모리 제한을 적용하려고합니다. TaskTracker에 cgroup을 할당하는 것이 가능하지만 작업이 혼란을 초래하면 TaskTracker는 아마도 같은 그룹에 있기 때문에 oom-killer에 의해 살해 될 것입니다.

컴퓨터에 8GB 메모리가 있다고 가정 해 봅시다. DataNode와 시스템 유틸리티에 1,5GB를 예약하고 Hadoop TaskTracker가 6,5GB의 메모리를 사용하게하고 싶습니다. 이제 저는 스트리밍 API를 사용하여 4 개의 매퍼와 2 개의 감속기 (이론적으로 1GB RAM을 사용할 수 있음)를 허용하는 것보다 많은 메모리를 사용하는 작업을 시작합니다. 이제 cgroup 메모리 제한에 도달하고 oom-killer가 작업을 중단하기 시작합니다. 차라리 각지도 및 축소 작업에 대해 cgroup을 사용하고 싶습니다. cgroup은 1GB 메모리로 제한됩니다.

이론적 인 문제입니까? oom-killer이 실제로 Hadoop TaskTracker를 죽이게 될까요, 아니면 먼저 fork 된 프로세스를 죽이기 시작할 것입니까? 후자가 대부분 사실이라면 내 아이디어가 효과가있을 것입니다. 그렇지 않으면 나쁜 작업은 여전히 ​​모든 클러스터 컴퓨터에서 TaskTracker를 죽이고 수동으로 다시 시작해야합니다.

cgroup을 사용할 때 찾아야 할 다른 것이 있습니까?

답변

0

tasktracker의 하위 프로세스 (작업)에 대한 힙 할당을 설정하고 최대화 할 수있는 hadoop 매개 변수를 살펴 보았으며 jvm 가능성 재사용도 잊지 마십시오.

유용한 링크 :

http://allthingshadoop.com/2010/04/28/map-reduce-tips-tricks-your-first-real-cluster/

http://developer.yahoo.com/hadoop/tutorial/module7.html

How to avoid OutOfMemoryException when running Hadoop?

http://www.quora.com/Why-does-Hadoop-use-one-JVM-per-task-block

+0

예 : http://www.ibm.com/developerworks/library/os-hadoop-scheduling/index.html

는 하둡이 링크를 사용하여 구성합니다. 문제는'ulimit' 만 가상 메모리를 다루기 때문에 좋은 한계를 설정하는 것이 어렵고 스트리밍 작업이 Java 작업의 한계에 미치지 못하기 때문입니다. 클러스터가 학생과 교직원의 많은 부분에서 사용될 것이므로 문제없이 작동해야하므로 강력한 솔루션이 필요합니다. –

0

당신이 학생들의 많은 직원 작업 제출을위한 하둡 클러스터에 접근을 가지고 있다면, 당신 아마 Job Scheduling을 볼 수 있습니다. 하둡에서. 페어 쉐어 스케줄러 뒤에 핵심 아이디어는 작업에 리소스를 할당하는 것이 었습니다 등이 평균적으로 시간이 지남에 따라, 각 작업 :

공정 스케줄러 - 여기

당신이에 관심이있을 수있는 몇 가지 유형의 요지입니다 이용 가능한 자원의 균등 한 분배를 얻는다. 공정성을 위해 각 사용자는 풀에 할당됩니다. 이 방법으로 한 사용자가 많은 작업을 제출하면 다른 모든 사용자와 동일한 클러스터 리소스를받을 수 있습니다 (제출 한 작업과 관계 없음).

용량 스케줄러 : 풀 대신 용량이 많은 여러 개의 대기열이 생성되며 각 대기열에는 구성 가능한 수의 맵 및 축소 슬롯이 있습니다. 각 대기열에는 보장 된 용량 (클러스터의 전체 용량은 각 대기열 용량의 합계입니다)이 할당됩니다. 용량 스케줄링은 다수의 독립적 인 소비자 및 대상 응용 프로그램을 가질 수있는 대형 클러스터에 대해 정의되었습니다.

여기는 시간이 없어서 내가 뻔뻔하게도 위에서 언급 한 것들을 복사 한 곳의 링크입니다.http://hadoop.apache.org/docs/r1.1.1/fair_scheduler.html#Installation