2017-04-18 9 views
0

Hadoop 컨테이너에는 데이터 크기가 0.5GB 인 데이터를 테스트하는 데 사용하는 데이터 크기가 실제로 두 배가되는 RAM이 더 필요합니다. 이유는 너무 많습니다.Hadoop에 필요한 RAM 용량이 필요한 이유는 무엇입니까?

실제 메모리 및 가상 메모리 개념에 대한 개념은 무엇입니까? 때로는 실제 메모리에서 500MB의 100MB와 같은 예외가 발생하지만 가상 메모리에서 2.5GB는 2GB를 초과합니다. 일반적으로 2GB가 전체 운영 체제를 실행하고 모든 데이터를 RAM 메모리에 유지하는 데 충분하면 2GB만으로 충분하지 않기 때문에 hadoop이 가상 메모리 한도를 초과하는 이유는 무엇입니까?

+0

저장 용량보다 RAM이 많은 hadoop 클러스터를 본적이 없습니다. 4TB의 RAM을 살 수 있습니까? 그리고 단일 4TB 디스크와 동일한 마더 보드에 넣으시겠습니까? –

+0

@ cricket_007 신중하게 읽으십시오. 0.5GB 데이터 크기로 작업을 테스트하기 위해 실행중인 저장소 크기가 아닌 데이터 크기를주의 깊게 읽었습니다. 나는 크기를 더 명확하게 언급 할 것이다. –

+0

Spark 등을 실행하지 않는 한 모든 데이터가 동시에 메모리에 저장되어야하는 것은 아닙니다. 컨테이너 크기를 초과하는 경우 클러스터에서 의미가있는 내용의 원사 구성 파일을 편집하기 만하면됩니다. 2G가 기본 최대 값입니다. 나는 –

답변

0

기본적으로 매퍼 또는 감속기 작업을 실행하는 Java 오버 헤드가 있으므로 RAM이 더 필요합니다. 그 프로세스의 자바 힙 + JVM.

https://documentation.altiscale.com/heapsize-for-mappers-and-reducers

아마 가장이 설명 :

이 사진

에서 확인할.

데이터가 Hadoop (자바)에서 사용되는 데이터 구조를 .5GB (예 :)로 사용하여 더 많은 데이터 사용을 나타내며 해당 데이터가 계산에 사용되는 임시 데이터 구조로 처리 될 때 결과는 더 많이 사용됩니다. 그리고 Java가 garbage 콜렉션을 사용하기 때문에 이러한 모든 표현은 가비지 콜렉션이 발생할 때까지 힙을 사용 중일 수 있습니다.