Hadoop을 총 2대에 올렸고 두 서버 모두 같은 공유기에 연결되어 있었기에 ssh 통신을 다음과 같이 두 개의 포트로 하였다.
(아래 퍼블릭 아이피는 예시입니다)
hostname | public ip | port | |
---|---|---|---|
서버 1 | server1 | 1.2.3.4 | 5000 |
서버 2 | server2 | 1.2.3.4 | 5001 |
sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# 추가
export HADOOP_SSH_OPTS="-p 5000"
export HADOOP_SSH_OPTS="-p 5000"만 추가해줄 때는 다음과 같은 오류가 지속적으로 떴었음
server2: ssh: connect to host server2 port 5000: Connection refused
vim ~/.ssh/config
-----
Host server1
HostName 1.2.3.4
User ubuntu
Port 5000
Host server2
HostName 1.2.3.4
User ubuntu
Port 5001
-----
AWS EC2 사용 시 (pem Key)
vim ~/.ssh/config
-----
Host server1
HostName 1.2.3.4
User ubuntu
Port 5000
IdentityFile ~/.ssh/example1.pem
Host server2
HostName 1.2.3.4
User ubuntu
Port 5001
IdentityFile ~/.ssh/example2.pem
----
ssh config 설정 파일을 적어두면 ssh 통신이 훨씬 간편해진다.
예를 들어, public ip나 port를 따로 적지 않아도 ssh 통신이 가능하다.
# ssh config 설정하기 전
ssh ubuntu@1.2.3.4 -p 5000
# ssh config 설정한 후
ssh server1
ssh 포트를 여러 개 쓰시는 분들은 hadoop-env.sh 설정이 아닌 ssh config 파일로 설정 추가를 해주시면 됩니다.
How to setup different SSH ports for different Hadoop workers?