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