음 메모리 소비가, 당신이 무슨 뜻인지에 따라 달라집니다의 클라우 데라의 블로그입니다 (예를 들어 재시작 후 연결할 때) 네임 노드와 통신하는 것이 데이타 노드의 책임이기 때문에 올바른 블록인지 확인하십시오. 네임 노드는 파일 시스템 구조 만 디스크에 저장합니다 (fsimage 및 파일 편집). 당신은 당신이 (RAM의 FS 구조를 유지하는 구성 요소입니다) FSNamesystem
이에 대한 참조를 가지고있는 소스 코드에서 명확하게 볼 수 있습니다에 대한 가상 메모리을 이야기 할 때
지금 상황은 약간 다릅니다 BlockManager
. BlockManager
자체는 BlocksMap
에 대한 참조를 유지합니다. 문서에 따르면 해당 블록이있는 데이터 노드 목록이 유지 관리됩니다.
이 클래스는 블록에서 메타 데이터로 맵핑을 유지 관리합니다. 블록의 메타 데이터에는 현재 해당 블록이 속한 blockCollection과 해당 블록을 저장하는 데이터 노드가 포함됩니다.
는 BlockManager
의 소스 코드를 통해 이동하는 경우가 명확하게 BlocksMap
어디에 사용되는 것을 볼 수 있습니다.
Cloudera의 사람들은 대규모 계산에서 경험을 쌓았고 영향을 측정했기 때문에이 구조의 크기는 Namenode가주의해야하는 나머지 메타 데이터와 비교할 때 중요하지 않습니다. 의.