Hadoop with AWS - 02 (EC2 인스턴스 생성 등)

hyeok2·2023년 6월 22일
0

hadoop

목록 보기
2/6
post-thumbnail

AWS EC2에서 하둡환경 구성

왜 AWS EC2인가?

하둡은 여러대의 컴퓨터상에서 분산 저장, 관리하는 시스템으로 여러대의 컴퓨터가 필요하다.
→ virtual muchine을 이용하여 작업을 하기도 하지만 리소스 관리가 어려워진다는 문제가 발생한다.

EC2 설정

Red Hat
Red Hat Enterprise Linux
인스턴스 유형 t2.medium

  • 비용이 계속 발생할 것이기 때문에 small 환경에서 실행했다.
  • 하지만 메모리 2기가, vCPU1개로 할 수 있는게 없었다.
    인스턴스가 계속 먹통이 되는 바람에 바로 t2 medium으로 유형을 변경해주었다.
    (2배가 되는만큼 요금도 2배!!)

aws ec2 인스턴스 구성

인스턴스는 총 4개로 구성했다.

  • client
  • namenode
  • secondnode
  • datanode

client 설정

  • putty로 client에 접속
  • sudo adduser hadoop : user를 추가한다.
  • sudo visudo : 추가한 유저에게 권한을 주기 위해 편집기로 진입
  • :100 : 100번째줄에서 권한을 추가해준다.

리눅스 편집기에서 tip
yy : 현재 선택 라인 복사
p : 붙여넣기
i : insert 내용입력
dd : 라인삭제

user에서 세팅

  • su hadoop : 유저를 hadoop으로 변경해준다.
  • yum install java : java를 설치한다.
  • sudo yum installl net-tools : net-tools를 설치
  • sudo yum install vim wget -y : 웹상의 파일을 다운받기 위한 wget 설치
  • sudo dnf install java-1.8.0-openjdk ant -y : openJDK 8 버전, Apache Ant를 설치

환경변수 등록

  • vim ~/.bashrc : 환경변수 편집기를 연다
  • export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64” : openjdk를 추가한다.
  • source ~/.bashrc : 환경변수 변경사항을 업데이트 해준다.
  • echo $JAVA_HOME : 자바홈이 잘 등록되었는지 확인

하둡 보안키 설정

해당 인스턴스에 접속하기 위한 보안키를 ppk로 저장하고, 이를 putty에 등록해놓으면 복잡한 절차 없이 접속이 가능하다.

  • ssh-keygen -t rsa : 보안키를 생성
  • cd ~/.ssh : 홈에 위치한 ssh 폴더에 진입
  • cat id_rsa.pub >> authorized_keys : 공개키로 등록하는 작업
  • chmod 640 ./authorized_keys

보안키 ppk 파일로 변경

  • cat id_rsa
    공개키를 확인한다.
  • 공개키를 저장하고 푸티젠에서 ppk파일로 변환해준다.
    (맥을 사용하면 pem파일 그대로 사용하면 되지만 윈도우는 변환이 필요)
  • filezilla로 접속한 후에 파일을 /home/hadoop/hadoop/etc/hadoop 에 넣어준다.

파이썬등 설치

  • sudo yum install python3-pip
  • sudo dnf install python3-pip

변수명을 설정하는 이유

  • 일을 편하게 할 수 있다.
  • python이나 pip 경우 3을 붙여야 실행되는 경우가 잦다.
    따라서 vim ~/.bashrc에 alias를 이용하여 변수명, 즉 별명을 한번만 설정해놓는다면 이런 번거로움이 감소한다.
    추후 hdfs -dfs 와 같은 명령어에서도 적용이 가능하다.
  • alias python = 'python3'
  • alias pip = 'pip3'

하둡 설치

  1. cd ~ : 홈으로 간다
  2. wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz : wget을 이용하여 하둡을 다운 받는다.
  3. tar xvzf hadoop-3.2.1.tar.gz : 받은 압축을 해제한다.
  4. mv ./hadoop-3.2.1 ./hadoop : 압축해제한 폴더명을 hadoop으로 변경한다.
  5. 환경변수 등록
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin

인스턴스 복제 및 설정

내보낸 이미지를 바탕으로 인스턴스를 3개 생성

  • key와 보안그룹 설정을 기존 인스턴스와 똑같이 해준다.

  • 각 프라이빗 ip를 메모장에 모두 적어준다. (접속을 ip주소를 기억할 필요없이 이름으로 할 수 있게 하기 위함이다)

  • sudo vi /etc/hosts : 내부 프라이빗 ip는 변경되지 않기 때문에 등록한다.

  • sudo hostnamectl set-hostname <인스턴스 이름> : 각 인스턴스에 접속하여 인스턴스 이름을 변경해준다.

profile
땅을 파다보면 흙과 물을 보겠지만, 코드를 파다보면 답이 보일것이다.

0개의 댓글