✅ 설치환경
- 개별JVM으로 실행 (의사분산 모드)
- AWS ubuntu EC2 t2.medium 인스턴스 사용
- 자바 8 필요
1. AWS EC2 계정 ssh 접속
2. Java 8 설치
# 자바 버전 확인(설치 확인)
java -version
sudo apt install openjdk-8-jre-headless
# unable to locate package 오류 발생시
sudo apt update
sudo apt install openjdk-8-jdk-headless
3. 하둡 계정 만들기
# 하둡 계정 생성
sudo adduser [username]
# 계정 전환
su -hdoop
# 로컬 호스트로 비밀번호 없이 로그인하도록 설정
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 읽기전용으로 권한 변경
chmod 0600 ~/.ssh/authorized_keys
# 패스워드 없이 로그인 확인
ssh localhost
4. 하둡 설치
# 하둡 3.3.4 다운로드
wget https:/archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
# 압축해제 설치
tar xvf hadoop-3.3.4.tar.gz # [username] 홈 디렉토리에 설치(우분투가 아니라)
ls -tl # 디렉토리 파일 확인
5. 환경변수 설정
# 실행파일 수정
vi .bashrc
# 아래 내용 추가
export BASE_HOME=/home/[username] #본인의 계정으로 수정
export HADOOP_HOME=$BASE_HOME/[username]
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
# 변경된 환경변수 실행
source .bashrc
# 하둡 마스터 환경설정 파일 수정
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# 자바홈 추가
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# 하둡 네임노드 정보 파일 수정
vi $HADOOP_HOME/etc/hadoop/core-site.xml
# configuration 부분 추가
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/[username]/tmpdata</value> #수정필요
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
# 데이터 블락하고 관련된 정보 파일 수정
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
# configuration 부분 추가
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/[username]/dfsdata/namenode</value> #수정필요
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/[username]/dfsdata/datanode</value> #수정필요
</property>
<property>
<name>dfs.replication</name>
<value>1</value> # 의사분산모드
</property>
</configuration>
# 맵리듀스 관련 정보 파일 수정
vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
# configuration 부분 추가
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# yarn의 주요 데몬인 노드매니저, 리소스매니저 설정 파일 수정
vi $HADOOP_HOME/etc/hadoop/yarn-site.xml
# configuration 부분 추가
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
6. 포맷초기화
# 포맷(초기화)
hdfs namenode -format
7. 데몬띄우기
# 파일 이동
cd hadoop-3.3.4/sbin/
# hdfs와 관련된 네임노드, 데이터노드 두개의 데몬 JVM위에 띄우기
./start-dfs.sh
# yarn 띄우기 노드매니저, 리소스 매니저 실행
./start-yarn.sh
# jps 실행 -> 에러발생(jre만 있고 jdk는 없어서) (java로 만들어진 app을 보여주는 명령어 jps)
# 우분투 계정으로 이동
exit
logout
# jdk 설치
sudo apt install openjdk-8-jdk-headless
# 다시 하둡 어카운트로 이동
su - [username]
# jps 재실행
jps
jps 실행시 secondaryNameNode, DataNode, ResourceManager, NameNode, Jps, NodeManager가 실행되고 있다는 것을 알 수 있습니다.
포트 정보만 알고 있다면 웹UI로도 확인할 수 있습니다.
참고
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
https://archive.apache.org/dist/
https://sseozytank.tistory.com/78
'데브코스 데이터엔지니어링' 카테고리의 다른 글
[Spark] 아파치 스파크 3.0이란? (0) | 2024.12.31 |
---|---|
[Hadoop] 맵리듀스 프로그래밍 실행, hdfs 명령어 정리 (0) | 2024.12.31 |
[Hadoop] 맵리듀스 프로그래밍 (0) | 2024.12.31 |
[Airflow] PostgreSQL 데이터를 Redshift로 적재하는 Airflow DAG 코드 (2) | 2024.12.28 |
[Airflow] Airflow Xcom (0) | 2024.12.28 |