hdfs stop 시에 다음과 같은 에러가 발생하는 경우가 있다.
anymousehostname : no namenode to stop
anymousehostname : no datanode to stop
분명히 hdfs는 구동하고 있었는데 정지시킬 노드가 없다는 것인데 찾아보니
정지시키기 위한 node의 pid 정보를 디폴트로 /tmp 디렉토리에 저장해놓는데
임시디렉토리라서 /tmp 디렉토리 내의 데이터를 10일이 지나면 삭제하도록 되어있다고 한다.
그래서 찾을 수 없다는 것인데 해결 방법은 pid가 저장되는 위치를 변경하면 된다.
${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 파일을 열어서 HADOOP_PID_DIR을 수정한다.
# The directory where pid files are stored. /tmp by default.
# NOTE: this should be set to a directory that can only be written to by
# the user that will run the hadoop daemons. Otherwise there is the
# potential for a symlink attack.
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
hdfs를 내린 뒤 HADOOP_PID_DIR을 ${HADOOP_HOME}/pid 로 변경하고 구동시켰더니 다음과 같이 pid 파일이 생겼다.
-rw-rw-r-- 1 may may 5 2016-09-12 17:20 hadoop-may-namenode.pid
-rw-rw-r-- 1 may may 5 2016-09-12 17:20 hadoop-may-secondarynamenode.pid
[may@anymousehostname pid]$ cat *
6615
6867
'개발 > Data Engineering' 카테고리의 다른 글
Avro와 Parquet (0) | 2021.06.24 |
---|---|
태블로 데이터 원본 구성 방법 - 관계와 조인 (0) | 2021.04.16 |
HDFS 네임노드 OutOfMemory 에러 (0) | 2016.09.27 |
직접해보는 하둡 프로그래밍 - 1. 빅데이터와 하둡이해하기 - 하둡이해하기 (0) | 2016.09.25 |
hdfs에서 name node is safe mode 라고 나올 때 (0) | 2016.09.22 |