본문 바로가기
AI Journey/리눅스

[Linux] Hadoop 마스터 노드 구축하기 part.2 - APM 스택, SSH 서버 구축 및 SSH 키 생성

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

지난 포스팅에 이어 계속해서 우분투에서 하둡 마스터 노드를 구축해보자.  이번에는 웹 서버, 데이터베이스 설치와 같은 관리 환경 구축, 그리고 노드 간 통신을 위한 SSH 서버를 설치하고 키를 생성한 후, 접속이 잘 되는지 테스트를 해보도록 한다.

1. APM(Apache, PHP, MySQL) 및 확장 모듈 설치

하둡 관리 및 모니터링 툴 운영을 위해 웹 서버(Apache), 서버 사이드 스크립트 언어(PHP), 데이터베이스(MySQL)를 설치한다. [Linux] 우분투에 APM(Apache, PHP, MySQL) 설치하기에 더 자세히 정리해 두었으니 참고하자. 

  • 수행 작업: apache2, mysql-server, php7.2 및 관련 모듈(curl, gd, xml, zip 등)을 설치한다.
  • 목적: 하둡 생태계 소프트웨어(Hive, Hue 등)나 관리용 웹 인터페이스가 PHP 기반의 웹 환경이나 데이터베이스 저장소를 요구할 경우를 대비한다.
  • 핵심 내용: 웹 기반 관리 환경 조성. 하둡 에코시스템 소프트웨어들의 관리 도구(GUI) 및 메타데이터 저장소를 지원하기 위한 인프라를 마련함. 다양한 PHP 모듈을 설치하여 소프트웨어 간 호환성 문제를 방지한다.

2. 서비스 실행 및 환경 점검

설치한 서비스를 활성화하고, 설치 상태와 네트워크 포트를 점검한다.

sudo service mysql start && sudo service apache2 start 

#홈 디렉터리 하위 파일들에 대해 다른 사용자가 읽고 실행할 수 있도록 권한을 일괄 변경.
sudo chmod 755 -R /home/
php -v
apache2 -v
mysql -V
#네트워크 상태 확인 도구 설치
sudo apt -y install net-tools 
#MySQL이 기본 포트인 3306에서 정상적으로 대기(Listen) 중인지 확인.
netstat -nltp |grep mysql
  • 수행 작업: apache2와 mysql 서비스를 시작하고, 각 소프트웨어의 버전을 확인해본다. 또한 netstat 명령어로 포트 상태(MySQL의 3306 포트 등)를 점검한다. chmod 755를 통해 홈 디렉터리 접근 권한을 조정한다.
  • 목적: 서비스가 백그라운드에서 정상 동작하는지 확인하고, 외부 접근이나 하둡의 상호작용이 가능한 상태인지 검증한다.
  • 핵심 내용: 정상 동작 검증. 특히 하둡 클러스터 내의 원활한 데이터 접근을 위해 권한 설정과 네트워크 리스닝 상태 확인이 필수적이다.

3. SSH 서버 설치

#원격 접속 및 데이터 전송을 위한 SSH 서버 설치
sudo apt -y install ssh
sudo apt -y install openssh-server
#우분투 자체 방화벽 기능을 정지하여 클러스터 내 노드 간 통신 방해 요소를 제거
sudo ufw disable

 

노드 간 통신과 원격 제어를 위해 보안 쉘(SSH)을 설정한다.

  • 수행 작업: openssh-server를 설치하고, 우분투 방화벽인 ufw를 비활성화한다.
  • 목적: 하둡 마스터 노드가 슬레이브 노드들에 명령을 내리거나 파일을 복사할 때 SSH 통로를 사용한다. 방화벽은 노드 간 통신을 차단할 수 있기 때문에 우선 꺼둔다.
  • 핵심 내용: 통신 인프라 설정

4. SSH 키 생성 및 무암호 로그인 설정

패스워드 입력 없이 노드끼리 통신할 수 있도록 RSA 암호화 키 쌍을 생성하고 등록한다.

ssh-keygen -t rsa -P "" #RSA 알고리즘 방식으로 암호 없는(-P "") 키 쌍을 생성.
ls -al /home/hduser/.ssh/
ls .ssh
cat .ssh/id_rsa
cat .ssh/id_rsa.pub

#내 공개키 내용을 '인증된 키' 목록에 추가하여 자기 자신에게 패스워드 없이 접속할 수 있게 함.
cat .ssh/id_rsa.pub >> .ssh/authorized_keys 
cat .ssh/authorized_keys 
ls -a .ssh 	#생성된 공개키(id_rsa.pub)와 개인키(id_rsa) 파일 확인.

#인증 키 파일에 실행 권한을 부여하여 시스템이 인식할 수 있게 함.
chmod +x .ssh/authorized_keys
  • 수행 작업: ssh-keygen으로 개인키(id_rsa)와 공개키(id_rsa.pub)를 생성한다. 공개키 내용을 authorized_keys 파일에 추가한 후 권한을 부여한다.
  • 목적: 하둡은 클러스터를 시작할 때 수많은 노드에 자동으로 접속한다. 이때 매번 비밀번호를 물어보면 자동화가 불가능하므로, 미리 키를 교환하여 자동 로그인이 되도록 설정한다.
  • 핵심 내용: Passwordless SSH. 하둡 운영 자동화의 핵심 전제 조건이다.

5. 자체 접속 테스트 및 확인

설정한 무암호 로그인이 정상적으로 작동하는지 자기 자신(master)에게 접속하여 테스트한다.

#최초 접속 - 마스터 노드 자기 자신에게 SSH 접속 시도. 
ssh [username]@master 
#최초 접속 시 yes를 입력하여 신뢰하는 호스트로 등록.
exit
#재접속(무암호)
ssh [username]@master
exit
  • 수행 작업: ssh [username]@master를 실행하여 최초 접속 시 지문(fingerprint)을 등록하고, 이후 다시 접속했을 때 패스워드 입력 없이 바로 로그인이 되는지 확인한다.
  • 목적: 키 설정이 올바르게 되었는지 확인하여 향후 슬레이브 노드 추가 시 발생할 수 있는 통신 오류를 예방한다.
  • 핵심 내용: 설정 완결성 검증. exit 후 재접속 시 비밀번호를 묻지 않는다면 마스터 노드의 통신 준비가 완료된 것이다.