[Hbase] 구동시에 regionserver 에서 마스터서버 주소를 localhost 로 접속을 시도할 경우 (Attempting connect to Master server at localhost)

네이버의 pinpoint 를 도입하기 위해 테스트를 하려고 하던중 이었다.

pinpoint 를 설치하기 위해서는 일단 hadoop + zookeeper + hbase 를 설치해야하는 상황…
일단 hadoop 부터 zookeeper 까지는 문제 없이 설치를 완료 했다.

하지만 hbase 는 자꾸 문제가 발생 ….

일단 문제가 hbase 의 regionserver 가 구동시에 master 서버로 접속을 해서 validation 체크를 해야 하는데
자꾸 로그상으로 regionserver 에서 master 서버의 아이피를 localhost 로 보고 있는…

Exception log를 보면

이런식 으로… Attempting connect to Master server at localhost,60000 을 보고 있다.

hbase 설정 파일에는

분명히 마스터로 namenode 를 잡아 놨는데도 저렇게 바라보니 정말 혼란스러웠다..
구글링을 해봤지만 쓸만한 답변은 찾을수가 없었다. (대부분 위에 설정 파일처럼 hbase.master 를 설정 해보라는 것)

이 상태에서 zookeeper 로 hbase 상태를 확인해 보면

이렇게 아무것도 안나오는 상황…

일단은 각 regionserver 들에 HRegionServer 프로세스가 잘 뜨고 있고 namenode 인 마스터 서버에도 HMaster 가 잘뜨고
있기 때문에 결국은 남은것은 host 설정 문제 뿐 이었다… (조언을 부탁 드린 네이버 분들도 이 부분을 알려주심)

이쪽으로 구글링을 집중적으로 해보았다.
결과는 127.0.0.1 localhost 설정을 없애 보라는것

일단 /etc/hosts 내용을 보면

* 참고사항
1. 총 서버는 4대
2. 각 서버의 호스트 명은 hadoop-1, hadoop-2, hadoop-3, hadoop-4
3. 아이피는 내부 아이피 이니 해킹 시도는 꿈에도 꾸지 말것!

이렇게 되어있고 namenode 가 마스터 이다.
그리고 regionserver 는 datanode01 ~ 03 이다.

여기서

이 부분을 이렇게 주석 처리 하고

이렇게 각 서버별로 서버명과 자신의 아이피를 설정해준뒤

zookeeper 클라이언트 에서 /hbase 삭제후에 다시 hbase 기동!

기동하면서 regionserver 로그를 tail 로 찍어놓고 보면

master 서버의 주소를 의도한대로 hadoop-1로 보고 있는것을 알수 있다.

잘 실행이 되는것을 알수 있다.

휴… 해결.. 이제 pinpoint 설치하러 가야겠다.

그런데 이 설정으로 localhost 127.0.0.1 설정이 없어졌는데..
이로 인해 문제가 다른곳에서 발생을 할지 … 좀 걱정이긴 합니다… 따라서… 좀 써보다가 문제가 발생하면
다시 포스팅 하도록 하겠습니다…

———————–추가————————————————————

아무래도 localhost 를 없앤것이 좀 찝찝한 나머지 좀 테스트를 해보았습니다.
결론적으로 말하면 linux 에서는 127.0.0.1 localhost 설정이 hosts 파일에 없어도 기본적으로 localhost 를 127.0.0.1
로 인식하는거 같네요.

이런식으로 인식이 됩니다.

그래도 혹시 어플리케이션 중에 hosts 파일의 localhost 설정을 사용하는 것이 있을수 있기 때문에
각 서버의 /etc/hosts 파일에 localhost 를 추가해 주기로 했습니다.

위의 설정의 요는 localhost 가 127.0.0.1 이 아닌 본인 서버의 아이피만 바라보면 되기 때문에

hadoop-1 서버

hadoop-2 서버

hadoop-3 서버

hadoop-4 서버

이렇게 추가시켜 주었고 잘 동작 하네요..

도움이 되시길 바랍니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다