2013-08-30 2 views
0

저는 현재 하프 프로그램을 개발 중입니다. 매퍼 작업자가 높은 메모리 (약 7G)를 사용하기 때문에 Hadoop이 프로그램을 종료합니다. 한 컴퓨터에서 한 번에 하나의 작업 만 실행할 수있는 방법이 있습니까?하둡 하나의 기계는 하나의 작업 만 실행합니다.

아래의 설정을 시도했지만 작동하지 않았습니다. 작업은 hadoop에 의해 사망했다.

conf.set("mapreduce.tasktracker.reserved.physicalmemory.mb", "7000"); 
conf.set("mapred.tasktracker.map.tasks.maximum", "1"); 

클러스터는 mapr-m3를 사용하는 모든 컴퓨터는 70 % 가용성 15.6GB 메모리를 갖는다. 새 API가 지원 한 경우

mapred.child.java.opts=-Xmx7000m

당신이 매퍼 만에 위해를 지정할 수 있습니다

+0

그런 구성은 restart hadoop을 필요로하며 클라이언트에서 설정할 수 없습니다. – zsxwing

답변

0

나는 (이 두 맵과 작업을 감소) 가상 머신 옵션을 설정해야합니다 생각 :

mapreduce.map.java.opts=-Xmx7000m

내가보기에, 비슷한 문제가 있었다 또한 가상 머신 heapsizes 기록 :
small blog post about checking java heap sizes

축소 기가 노드에서 실행 중이므로 메모리를 경쟁 할 수 있으므로 필요하면 줄이기 슬롯 수를 제한해야합니다.

+0

어디에서이 값을 설정해야합니까? 좋아요 : conf.set ("mapreduce.map.java.opts", "-Xmx7000m1")? btw, 매퍼가 한 번에 하나의 작업 만 실행하는지 확인합니까? – Yukun

+0

tasktracker의 맵 슬롯 수를 제한하여 매개 변수와 함께 설정해야합니다. (그러나 표준 Xmx는 7000m보다 훨씬 낮은 값, 보통 1000m 이하로 설정 됨). 맵 슬롯 수를 설정하는 것과 같은 방법으로 값을 설정할 수 있으며, conf.set()은 괜찮습니다. 또는 mapred.site.xml 파일을 수정할 수 있습니다. – DDW

관련 문제