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

[Linux] Hadoop 마스터 노드 구축하기 part.1 - 자바 설치 및 환경변수 설정

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

우분투에서 하둡의 마스터 노드를 구축하는 과정을 알아보자. 

1. 하둡 전용 계정 생성 및 호스트 이름 설정

하둡 운영을 위한 별도의 계정을 생성하고, 네트워크 상에서 노드를 식별할 이름을 정의하는 단계이다.

adduser [username]
cd /home/[username]/
nano /etc/hostname

<nano 편집창>
[hostname]-> "master"로 변경

hostname -F /etc/hostname && hostname
master
  • 수행 작업: [username]계정 생성, /etc/hostname 수정 (master로 변경), hostname -F로 즉시 적용.
  • 목적: 하둡은 클러스터 구조이므로 각 노드를 구분할 명확한 호스트 이름이 필요하며, 보안과 관리 편의를 위해 전용 계정인 [username]을 사용한다.
  • 핵심 내용: 노드 식별자 확립. 클러스터 내에서 이 서버는 'master'라는 이름으로 통신하게 된다.

2. IP 및 호스트 매핑 (Network Mapping)

IP 주소와 호스트 이름을 연결하여 이름만으로 서로 통신할 수 있게 설정하는 단계이다.

nano /etc/hosts

<nano 편집창>
127.0.1.1       [hostname] -> "master"로 변경
192.168.100.*** master ->  추가

init 6
  • 수행 작업: /etc/hosts 파일 수정. 루프백 주소(127.0.1.1)를 master로 변경하고, 실제 고정 IP(192.168.100.***)를 master에 할당. 이후 init 6으로 재부팅.
  • 목적: 하둡 설정 파일에서 IP 대신 master, slave1 같은 이름을 사용하기 위함이다.
  • 핵심 내용: 도메인 해석(DNS)의 로컬 설정. IP 주소가 바뀌더라도 이름 기반의 설정을 유지할 수 있게 한다.

3. 권한 설정 및 관리자 권한 부여

생성한 [username]이 시스템 설정 및 패키지 설치를 할 수 있도록 권한을 조정하는 단계이다. (루트 계정에서 수행)

[username]@master:~$ su ubuntu
Password: 
ubuntu@master:/home/[username]$ sudo su
root@master:/home/[username]# passwd root
root@master:/home/[username]# nano /etc/sudoers

<nano 편집창>
# User privilege specification
root    ALL=(ALL:ALL) ALL
[username]  ALL=(ALL:ALL) ALL  -> 추가
  • 수행 작업: root 패스워드 설정, /etc/sudoers 파일에 [username] ALL=(ALL:ALL) ALL 추가.
  • 목적: [username]이 sudo 명령어를 사용하여 관리자 작업을 수행할 수 있도록 하기 위함이다.
  • 핵심 내용: [username] 의 관리자 권한(Sudoer) 획득. 매번 root로 로그인하지 않고도 필요한 작업을 수행할 수 있는 환경을 만든다.

4. 네트워크 인터페이스 및 DNS 확인

서버가 고정 IP를 사용하고 외부 네트워크와 정상적으로 통신하는지 확인하는 단계이다.

  • 수행 작업: /etc/network/interfaces, /etc/resolv.conf, /etc/resolvconf/resolv.conf.d/base 파일 내용 확인.
  • 목적: 서버 재부팅 후에도 IP가 바뀌지 않는 고정 IP(Static IP) 상태를 유지하고, 패키지 다운로드를 위한 DNS 설정이 올바른지 점검한다.
  • 핵심 내용: 네트워크 안정성 확보. 클러스터 환경에서 유동 IP를 사용하면 노드 간 연결이 끊길 수 있으므로 고정 IP 설정이 필수적이다.

5. 자바(Java) 설치 및 환경 변수 설정

하둡은 자바 기반으로 동작하므로, 실행 엔진인 JDK를 설치하고 경로를 지정하는 단계이다. (다시 하둡 전용 계정인 [username] 계정으로 전환해서 실행)

root@master:/home/[username]# su - [username]
[username]@master:~$ sudo apt update
[username]@master:~$ sudo apt -y install default-jdk
[username]@master:~$ update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
[username]@master:~$ nano ~/.bashrc

<nano 편집창 열어서 다음 내용 추가>
#JAVA_HOME
export JAVA_HOME=/user/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

[username]@master:~$ source ~/.bashrc

[username]@master:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/user/lib/jvm/java-11-openjdk-amd64/bin
[username]@master:~$ java -version
openjdk version "11.0.19" 2023-04-18
OpenJDK Runtime Environment (build 11.0.19+7-post-Ubuntu-0ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.19+7-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing)
[username]@master:~$ javac -version
javac 11.0.19
  • 수행 작업: apt update 후 default-jdk 설치. ~/.bashrc 파일에 JAVA_HOME 및 PATH 변수 추가 후 source 명령으로 적용.
  • 목적: 시스템 어디서든 자바 실행 파일에 접근할 수 있게 하고, 하둡이 자바 위치를 인식할 수 있도록 한다.
  • 핵심 내용: 런타임 환경 구축. 하둡 실행의 필수 전제 조건인 Java Development Kit를 시스템 전역에 활성화한다.

6. 추가 저장소 및 GPG 키 등록

최신 패키지나 특정 소프트웨어를 설치하기 위해 신뢰할 수 있는 저장소를 추가하는 단계이다.

sudo add-apt-repository ppa:ondrej/php
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [GPG key]
  • 수행 작업: ppa:ondrej/php 저장소 추가 및 apt-key를 이용한 GPG 키 수신.
  • 목적: 기본 우분투 저장소 외에 필요한 패키지(예: PHP 등)를 내려받기 위한 경로를 확장한다.
  • 핵심 내용: 패키지 소스 확장 및 보안 인증. 보안 키(GPG)를 등록하여 안전하게 외부 패키지를 가져올 준비를 한다.