HDFS 네임노드 OutOfMemory 에러

hdfs 네임노드(namenode) 운영 시 OutOfMemory 에러가 나면서 data node들이 dead 상태가 되고

block들이 corrupt 되었다고 메시지가 나오는 경우가 있었다.


Namenode 프로세스 메모리는 디폴트가 1000m라서 1000m으로 되어있었는데 이 용량이 부족해지듯 하다.

찾아보니 HDFS는 작은 파일들을 저장하는데 적합하지 않다고 한다. 파일 갯수가 많아질 수록 네임노드가 필요한 메모리 용량도 커지는데 파일을 작게 생성하고 지우지 않으면 문제가 될 수 있다.


일단 메모리를 3G로 늘렸고 파일 관리 방법에 대해서는 좀 더 찾아봐야겠다.


메모리를 늘리려면 {HADOOP_HOME}/etc/hadoop/hadoop-env.sh 파일에 다음 항목을 수정하면 된다.

(데이터노드를 수정하려면 데이터노드에 설치되어 있는 하둡의 파일을 수정해야 한다.)


HADOOP_HEAP_SIZE=3000m



운영 관련해서 다음 블로그에 정리가 잘되어 있는 것 같다.

http://blog.recopick.com/24


네임노드 뿐만 아니라 데이터노드도 같은 문제가 발생할 수 있는 것 같다.