본문 바로가기
AI Journey/클라우드

가상환경에서 Hadoop 클러스터 구축하기 part.1 - 호스트네임, 네트워크 설정

by 보눔비스타 2025. 12. 22.

Vmware 등의 가상 환경에서 실습을 할 때는 마스터 노드로 구축한 가상머신을 복제(clone)해서 슬레이브(slave)노드로 만들면 간단하게 하둡 클러스터를 구축할 수 있다. 이 때 호스트네임과 네트워크 식별 정보(IP/MAC Address) 까지 복제가 되는데, 각각의 클론에서 네트워크 등의 설정은 손수 해줘야 한다. 하둡 클러스터가 정상적으로 작동하려면 각 노드가 고유한 이름과 IP를 가져야 하기 때문이다. 

1. 가상머신 하드웨어 식별자(MAC 주소) 재설정

가상머신을 복제하면 네트워크 카드의 물리적 주소인 MAC 주소까지 동일하게 복사될 수 있다. 이는 네트워크 충돌의 원인이 되므로 가장 먼저 변경해야 한다.

  • VMware에서 해당 슬레이브 노드 (power off한 상태에서)  가상머신의 설정을 열고 Network Adapter -> Advanced 메뉴로 들어간다.
  • MAC Address 항목에서 Generate 버튼을 눌러 새로운 주소를 생성한다.

2. 호스트네임(Hostname) 변경

슬레이브 노드로 복제한 가상머신을 부팅하고 사용자 로그인을 해서 고유한 호스트네임을 부여한다.

  • 각 노드의 터미널에서 sudo hostnamectl set-hostname [원하는이름] 명령어를 사용한다.
  • ex. sudo hostnamectl set-hostname slave1

3. 고정 IP 주소 할당

하둡 노드 간 통신이 원활하려면 유동 IP가 아닌 고정 IP를 사용해야 한다. Ubuntu 18.04 버전 이상에서는 Netplan을 사용하여 이를 설정한다.

  • ls /etc/netplan/ 을 입력해서 /etc/netplane/ 디렉토리 안에 있는 파일의 정확한 이름을 확인 (ex. 01-network-manager-all.yaml)
  • 확인한 파일 이름을 넣어 nano 편집기를 연다. (sudo nano /etc/netplan/01-network-manager-all.yaml)
  • Ubuntu 구버전이라면 /etc/network/interfaces에서 수정해도 된다. (본인은 interfaces 파일에서 수정함)

(위에 address 부분  마지막 3자리를 마스터노드 주소인 129에 이어서 130으로 설정했다.)

    • 파일을 저장하고 바로 IP 주소가 바뀌지 않는다. 네트워크 서비스를 재시작하거나 재부팅을 하면 되는데, sudo reboot로 재부팅을 해주는 것이 가장 확실하고 깔끔하긴 하다.

바뀐 IP 주소를 확인한다

 

고정 IP를 정할 때 중요한 것은, 현재 사용 중인 VMware의 가상 네트워크 대역 안에서 남는 주소를 써야 인터넷 연결과 노드 간 통신이 정상적으로 이루어진다는 것이다. 따라서 다음 3가지 규칙은 지켜야 한다. 

 

1. 네트워크 대역(Subnet) 맞추기

VMware 설정에서 제공하는 네트워크 대역과 앞의 세 자리가 같아야 한다.

  • 확인 방법: 터미널에 ip addr 또는 ifconfig를 입력한다.
  • 만약 현재 IP가 123.456.10.101이라면, 고정 IP도 반드시 123.456.10.xxx 형태여야 한다.

2. 게이트웨이(Gateway) 주소 확인

외부 인터넷(패키지 설치 등)을 사용하려면 게이트웨이 주소가 정확해야 한다.

  • 일반적으로 VMware NAT 모드에서 게이트웨이는 끝자리가 .2인 경우가 많다. (예: 123.456.10.2).
  • 확인 방법: ip route | grep default 명령어를 입력하면 나오는 IP가 게이트웨이다.

3. 중복 주소 피하기

  • Host OS와 중복 금지: 윈도우(호스트 PC)가 사용 중인 IP와 겹치면 안 된다.
  • 다른 VM과 중복 금지: Master가 .100이면, Slave1은 .101, Slave2는 .102 식으로 겹치지 않게 순서대로 배정하는 것이 관리하기 편하다.

4. Hosts 파일 동기화

모든 노드(Master, Slaves)가 서로의 이름과 IP를 알 수 있도록 모든 노드에서 /etc/hosts 파일을 열어 클러스터의 모든 노드들의 IP주소와 이름을 입력한다. 이 파일은 모든 노드가 동일한 내용을 공유해야 한다. (2번 행은 1번행과 중복이므로 주석처리 하거나 삭제. 컴퓨터가 위에서부터 읽기 때문에 주석처리를 안하고 놔두면 ssh master를 쳤을 때 진짜 IP ***.***.***.129를 무시하고 자기 자신(localhost)으로 접속해버림.)

여기까지 가상환경에서 마스터노드와 슬레이브노드의 가상머신을 세팅하는 과정을 알아보았다. 

이어지는 포스팅에서는 마스터노드가 슬레이브노드를 제어할 수 있도록 SSH 공개키 기반의 인증 절차에 대해 알아보도록 한다.