본문 바로가기
BE/Database

[Hadoop] localhost: ERROR: Cannot set priority of namenode process 해결

by suhyeon chae 2024. 12. 12.

          서론          

업무에 hadoop을 활용해야하는 것 이 있어 로컬에 설치 후 업무를 진행을 잘했는데, 다음날에 hadoop을 다시 켜보니 namenode 부분에서 ERROR: Cannot set priority of namenode process 라고 나오며 namenode가 켜지지 않아 제대로 작동하지 않았다

 

 

 

 

 

          시도했던 방법          

1. 

hadoop을 설치하면 /hadoop-3.4.1/sbin 경로 아래에 stop-all.sh와 start-all.sh 파일이 있는데, 

(나 같은 경우는 hadoop의 버전이 3.4.1이라서 이부분은 사람마다 다를 수 있음)

 

각각 하둡의 모든 프로세스를 한번에 종료/시작하는 파일이다. 혹시 몰라서 터미널에 stop-all.sh을 입력하여 모든 프로세스를 종료시키고, start-all.sh 을 입력하여 다시 켜봤지만 namenode 부분에서 위에 첨부된 캡쳐 사진과 똑같은 에러가 계속해서 발생했다. 

 

jps를 쳐봐도 하단의 사진과 같이 namenode는 보이지 않았다.. 😭😭😭😭

 

 

2.

이게 무슨 우연인지 chatGpt도 서비스 잠시 안될 때였다..  홈페이지에 아예 그냥 글이 적혀있었다. 문제가 있어서 서비스 잠시 안된다고... ㅋ . 그래서 구글링에 ERROR: Cannot set priority of namenode 라고 검색했는데 거의 대부분 datenode 문제지 나와 같은 문제로 작성된 글을 찾기 힘들었다.  그래서 hadoop namenode 안켜짐  이런식으로 검색했더니 초기화 하라는 글을 우연히 보게되었다.

 

 

 

          해결          

* 주의!! 데이터가 삭제되므로 테스트 환경에서만 진행할 것*

해결방법은 namenode를 초기화하는 것이였다. 이것까지도 안되면 다시 설치를 하는게 더 빠를 것 같아서 다시 설치하려고했다. 

 

명령어 [ hdfs namenode -format ] 을 터미널에 치면 namenode가 초기화된다.  혹시 몰라서 데몬으로 돌아가는 하둡 프로세스를 모두 종료했다. (stop-all.sh 명령어) 초기화 한 후에 start-all.sh 파일을 실행하여 모든 프로세스들이 정상적으로 뜨는지 확인했다.

 

이 부분에서 N으로 입력해야 namenode 초기화 후 datanode문제가 생기지 않는다.

 

!!!!! 아까 오류났던 namenode가 정상적으로 실행된 것을 볼 수 있었다.

 

jps 명령어로도 확인해본 결과, 

 모든 프로세스들이 정상적으로 실행됨을 알 수 있었다. 

 

그래도 의심이 되어 ㅋㅋ web에서도 잘 보이는지 끝까지 확인하였다.

(http://localhost:50070) 에 접속하여 web이 잘 뜨는지 확인까지 완료하고 업무를 다시 진행하니 정상적으로 실행이 잘 되었다! ☺️ ☺️ 

 

 

 

 

          마치며          

 

왜 잘 작동하던 것이 에러가 났는지는 모르겠다. 로그를 확인해보라고 하지만.. 로그를 봐도 아직은 잘 모르겠다. 그래서 초기화하여 해결하는 방법으로 진행했다. 다음번에 또 에러가 난다면, 그때는 원인을 잘 파악하고 같은 에러가 반복되지 않도록 확실히 해결해야겠다!!