Cloud | AI | BigData

[AWS-EC2 Hadoop|Hive|Spark] Hadoop Name/DataNode 및 Client 서버 기본 설정+ ssh 키생성

개폰지밥 2022. 12. 9. 08:00
반응형
☞ 관련 글
2022.11.16 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark]AWS 회원가입, 계정 삭제, 비밀번호 변경
2022.12.03 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark]인스턴스 생성, 시작과 종료
2022.12.04 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 인스턴스 putty 접속 + root 접속 + puttygen .ppk 생성 +
2022.12.05 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 계정생성 Java8설치 + selinux해제
2022.12.06 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Haoop3.2 설치(Hadoop 계정)
2022.12.07 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hadoop 3.2 설정파일 설정
2022.12.08 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] 인스턴스 복사(AMI 생성) + 이미지/인스턴스 삭제
2022.12.09 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hadoop Name/DataNode 및 Client 서버 기본 설정+ ssh 키생성
2022.12.10 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] Hdfs 파일 포맷, Hdfs/Yarm 시작 종료
2022.12.10 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Hadoop 구축 핵심 및 에러 정리
2022.12.11 - [Cloud | AI | BigData] - [AWS-EC2 Hadoop|Hive|Spark] yum으로 MariaDB 10.5 설치
2022.12.12 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Hive 3 설치
2022.12.13 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] Spark 3 설치
2022.12.14 - [Cloud | AI | BigData] - [AWS-Hadoop|Hive|Spark] pip install로 jupyter 설치

 

| SystemStructure

8일차인 오늘은 NameNode와 DataNode를 본격적으로 구성해보겠습니다.

 

목차

1. NameNode 서버 설정
   1.1 프롬프트 변경
   1.2 hostname 변경
   1.3 /etc/hosts 파일 수정
   1.4 SSH 키 생성 및 SSH 설정
2.1 SecondaryNameNode 수정
2.2 datanode3 수정
2.3 client 수정
3. SSH 키 교환

 

내용

1. NameNode(Master) 서버 설정

1.1 프롬프트 변경

서버 4대를 동시에 다루다 보니 가끔 어떤 서버가 NameNode 서버였는지 DataNode 서버였는지 잊어버리기 때문에, 프롬프트를 변경해준다.

1.1.1 일시적 변경 (Hadoop 계정만 변경)

[hadoop@ip-172-31-40-48 ~]$ export PS1="[\u@Namenode \W]\$ "

1.1.2 영구적 변경 (Hadoop 계정만 변경)

[hadoop@Namenode]vi ~/.bashrc

export PS1="[\u@Namenode \W]\$ " 추가


[hadoop@Namenode ~]$ source ~/.bashrc

 

1.2 hostname 변경

[hadoop@Namenode ~]$ sudo hostnamectl set-hostname namenode
[sudo] password for hadoop: hadoop패스워드입력

1.2.1 hostname 변경 확인

[hadoop@Namenode ~]$ hostnamectl

 

1.3 /etc/hosts 파일 수정

namenode가 namenode이자 datanode1 그리고 secondarynode가 secondarynode이자 datanode2이기 때문에 호스트 네임을 2개씩 주었습니다.

각각 한가지 역할만 한다면 private_ip hostname 이런식으로 honstname을  한개씩만 적어주시며 됩니다.

 

[hadoop@Namenode ~]$ sudo vi /etc/hosts

본인_namenode_private_ip  namenode_hostname  datanode1_hostname
본인_secondarynamenode_private_ip  secondarynamenode_hostname  datanode2_hostname
본인_datanode3_private_ip  datanode3_hostname
본인_client서버_private_ip  client_hostname
172.31.40.48 namenode datanode1
172.31.38.6 secondnode datanode2
172.31.34.81 datanode3
172.31.34.178 client

그리고 wq로 저장하고 나옵니다.

 

1.4 SSH 키 생성 및 SSH 설정

AWS에서 키를 생성하고 복사하여 동일한 키를 가지고있으면 생략하셔도 될듯합니다.

1.4.1 SSH 키 생성

비밀번호 없이 각각의 서버와 통신하기 위하여 ssh키를 생성하고 교환하겠습니다.

[hadoop@Namenode ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 그냥엔터
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):그냥엔터
Enter same passphrase again:그냥엔터
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Y6yRPcGHIkSu549avct6y6KoQb/4qyc+qxyo7BkEUl0 hadoop@namenode
The key's randomart image is:
+---[RSA 3072]----+
|  .oo.E          |
| . o.  . .       |
|o   o . + .      |
|o  . . = o       |
| o. . o S        |
|+ .o . + o       |
|oo .o o          |
|+==oo=..         |
|XXX*++Bo         |
+----[SHA256]-----+

 

1.4.2 SSH 설정 및 재시작

PasswordAuthentication no -> yes로 변경

[hadoop@Namenode ~]$ sudo vi /etc/ssh/sshd_config
[sudo] password for hadoop: hadoop의패스워드

[hadoop@Namenode ~]$ sudo systemctl restart sshd

 

 

2. SecondaryNameNode, DataNode, Client 서버 설정

SecondaryNameNode, DataNode, Client 서버 모두 hostname, 명령프롬프트 수정을 합니다.

2.1 SecondaryNameNode 수정

2.1.1 Prompt 수정

[hadoop@ip-172-31-38-6 ~]$ export PS1="[\u@secondnode \W]\$ "
[hadoop@secondnode ~]$ vi ~/.bashrc

export PS1="[\u@secondnode \W]\$ " 추가


[hadoop@secondnode ~]$ source ~/.bashrc

 

2.1.2 hostname수정

[hadoop@secondnode ~]$ sudo hostnamectl set-hostname secondnode
[sudo] password for hadoop: hadoop패스워드입력

 

2.1.2.1 hostname 변경 확인

[hadoop@secondnode ~]$ hostnamectl

 

2.1.3 /etc/hosts 파일 수정

[hadoop@secondnode ~]$ sudo vi /etc/hosts

172.31.40.48 namenode datanode1
172.31.38.6 secondnode datanode2
172.31.34.81 datanode3
172.31.34.178 client

그리고 wq로 저장하고 나옵니다.

 

2.1.4 SSH 키 생성 및 SSH 설정

2.1.4.1 SSH 키 생성

비밀번호 없이 각각의 서버와 통신하기 위하여 ssh키를 생성하고 교환하겠습니다.

[hadoop@secondnode ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 그냥엔터
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):그냥엔터
Enter same passphrase again:그냥엔터
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:x0xGzFta+3dX3abblpm7eUQAGp6h9OhxAOgbLDhsWhA hadoop@secondnode
The key's randomart image is:
+---[RSA 3072]----+
|E.   ...oo+ ..   |
|.   .  . Bo=o .  |
|.o o    + O= . .o|
|ooo +  . Bo .   *|
|oo . o  S +  . +.|
|.   .    .    o =|
|               =*|
|              .+=|
|               =+|
+----[SHA256]-----+

 

2.1.4.2 SSH 설정 및 재시작

PasswordAuthentication no -> yes로 변경

[hadoop@secondnode ~]$ sudo vi /etc/ssh/sshd_config
[sudo] password for hadoop: hadoop의패스워드

[hadoop@secondnode ~]$ sudo systemctl restart sshd

 

아래와 같이 datanode2와 client도 추가적으로 변경합니다. 또한 namenode와 datanode1(secondnode)처럼 ssh 키생성과 수정도 진행합니다. 

 

2.2 datanode3 수정

export PS1="[\u@datanode3 \W]\$ "

vi ~/.bashrc
export PS1="[\u@datanode3 \W]\$ "
source ~/.bashrc

sudo hostnamectl set-hostname datanode3
[sudo] password for hadoop:
hostnamectl

sudo vi /etc/hosts
172.31.40.48 namenode
172.31.38.6 seconnode
172.31.34.81 datanode3
172.31.34.178 client

ssh-keygen
엔터 3번

sudo vi /etc/ssh/sshd_config
PasswordAuthentication no -> yes로 변경
sudo systemctl restart sshd

 

2.3 client 수정

export PS1="[\u@client \W]\$ "

vi ~/.bashrc 
export PS1="[\u@client \W]\$ " 추가
source ~/.bashrc

sudo hostnamectl set-hostname client
[sudo] password for hadoop:
hostnamectl

sudo vi /etc/hosts
172.31.40.48 namenode
172.31.38.6 seconnode
172.31.34.81 datanode3
172.31.34.178 client

ssh-keygen
엔터 3번

sudo vi /etc/ssh/sshd_config
PasswordAuthentication no -> yes로 변경
sudo systemctl restart sshd

 

3. SSH 키 교환

namenode server, datanode1(secondnode), 2 server, client server 4군데에서 모두 진행합니다.

3.1 NameNode 서버

[hadoop@Namenode ~]$ ssh-copy-id hadoop@namenode
[hadoop@Namenode ~]$ ssh-copy-id hadoop@secondnode
[hadoop@Namenode ~]$ ssh-copy-id hadoop@datanode3
[hadoop@Namenode ~]$ ssh-copy-id hadoop@client

 

3.2 datanode2(secondnode) 서버

[hadoop@secondnode ~]$ ssh-copy-id hadoop@namenode
[hadoop@secondnode ~]$ ssh-copy-id hadoop@secondnode
[hadoop@secondnode ~]$ ssh-copy-id hadoop@datanode3
[hadoop@secondnode ~]$ ssh-copy-id hadoop@client

 

3.3 NameNode 서버

[hadoop@datanode3 ~]$ ssh-copy-id hadoop@namenode
[hadoop@secondnode ~]$ ssh-copy-id hadoop@secondnode
[hadoop@datanode3 ~]$ ssh-copy-id hadoop@datanode3
[hadoop@datanode3 ~]$ ssh-copy-id hadoop@client

 

3.4 Client 서버

[hadoop@client ~]$ ssh-copy-id hadoop@namenode
[hadoop@secondnode ~]$ ssh-copy-id hadoop@secondnode
[hadoop@client ~]$ ssh-copy-id hadoop@datanode3
[hadoop@client ~]$ ssh-copy-id hadoop@client

 

3.5 SSH 접속 테스트

키가 잘 복사됐으면 각각의 모든 서버를 비밀번호 없이 들어갈 수 있다.

ssh hadoop@namenode
ssh hadoop@secondnode
ssh hadoop@datanode3
ssh hadoop@client
반응형