[Hadoop] 하둡 설정하기

임재규·2023년 6월 19일
0

Data_Engineering_Track_22

목록 보기
14/24

AWS 하둡 구성하기

  • aws ec2에 hadoop 인스턴스 세팅 완료 후 최종적으로 4개의 인스턴스를 구성
    * hadoop / hadoop_namenode / hadoop_secondnode / hadoop_datanode

Hadoop 서버 설정

  • hadoop 인스턴스에 putty로 접속
  • ec2-user로 접속 후 sudo visudo 입력
  • 100번째 줄로 이동하여 hadoop 추가해주기(아래 그림 참조)
    • hadoop유저에도 root계정과 같은 권한 부여

vi 편집기 단축키!
yy => 복사
p => 붙여넣기
x => 삭제
i => 삽입
dd => 지우기

java bashrc 환경변수 등록하기

이전 수업에 설치된 자바가 잘 설치됐는지 확인 (java입력하여 뭐 나오는 지 확인)

java 폴더로 이동

$ cd /usr/lib/jvm

환경변수 설정하기

$ cd /usr/lib/jvm

bashrc 파일에 export JAVA_HOME="/usr/lib/jvm/java-1.8.0-

openjdk-1.8.0.372.b07-4.el8.x86_64" 추가

source ~/.bashrc

echo $JAVA_HOME를 입력해 환경변수가 잘 지정됐는지 확인하기

python 3.9 설치

$ sudo yum install python39

명령어 약어 설정하기
아까 열었던 bashrc 파일 마지막 줄에 약어 설정하기

$ vim ~/.bashrc

편집기에 아래 두 줄 코드 입력

alias python="python3"
alias pip="pip3"

vim 편집기 다 저장하고 나왔으면 source로 업데이트

$ source ~/.bashrc

하둡 설치하기(공식사이트꺼)

다운받기

$ cd ~ 
 wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
tar 파일 압축 풀기
$ tar xvzf hadoop-3.2.1.tar.gz
# v옵션을 뺀 채로 적으면 진행되는 상황 안보여줌

이름 바꾸기

$  mv ./hadoop-3.2.1 ./hadoop

hadoop 보안키 설정(su hadoop해서 hadoop 사용자로 들어간다음 실행)

cd ~ + ssh-keygen -t rsa

cd ~/.ssh  # ssh 디렉터리 안에 key 파일이 생성된 걸 확인

cat id_rsa.pub # authorized_keys 파일에 복붙

chmod 640 ./authorized_keys #나는 write, read 가능하고 그룹은 read 가능하고 제 3자는 권한 없게 설정 

cd ~/.ssh + cat id_rsa

개인키를 복사한 것을 메모장에 붙여넣기 -> pem 파일명으로 저장 -> puttygen에서 pem을 ppk로 변환(conversions -> import key)

이후 이 ppk 파일을 fileziila에 등록해서 hadoop 계정의 저장소를 열어볼 수 있게 하기 (이때 ip는 client 서버의 public ip)

강사님이 업로드 해주신 파일들(인프라-하둡)을 fileziila를 통해서 hadoop/etc/hadoop으로 옮기기

hadoop 서버 이미지 생성

ec2 인스턴스 선택 -> 작업 -> 이미지 및 템플릿 -> 이미지 생성
이미지를 만들면 지금까지의 작업이 완료된 인스턴스를 언제나 복제할 수 있게끔 할 수 있음
하둡은 병렬처리이므로 다른 세대의 컴퓨터에도 위와 같은 전처리 작업을 해야함
이미지를 생성함으로써(복제본을 뜸) 병렬처리가 가능하게 하고자 함

이미지를 기반으로 인스턴스 생성
이미지:ami -> ami로 인스턴스 생성 -> 3개의 인스턴스를 동일한 조건으로 생성

client 서버에 private IP 연결

4개의 인스턴스를 client, namenode, secondnode, datanode로 만들고 client를 제외한 3개의 서버는 client 서버에서 접속하여 운영하도록 설정

ssh privateIP #본래 타 서버에 접속하기 위한 명령어

client 서버에서 다른 서버에 접속하면 .ssh 폴더 안에 known_hosts라는 파일이 생성
다른 서버에 접속할때마다 IP가 아닌 별칭으로 접속가능하게 설정

sudo vi /etc/hosts

파일 안에 접속 후 타 서버의 IP는 private IP를 입력하고 각각 이름을 부여
네 개의 모든 서버에 etc/hosts를 수정해주어야 함
이렇게 되면 ssh 별칭(ex:namenode)를 입력하면 해당 서버에 접속됨

또한, 해당 서버에 접속하면 바로 알아챌 수 있도록 서버의 이름을 hadoop@ip-privateIP가 아닌 별칭과 동일하게 변경

sudo hostnamectl set-hostname namenode

exit 했다가 다시 접속하면 이름이 namenode로 변경됨

하둡 서버 연결 상태

profile
공부 기록

0개의 댓글