구성 방식
| 정상 | error |
|---|---|
![]() | ![]() |
총
마스터 3개
클러스터로 띄우기 위해서는 Zookeeper가 꼭 필요함
슬래이브 3개
ubuntu 접속
.ssh/authorized_keys 보면 맨 뒤의 내가 만든 키 있음
ssh-keygen -t rsa
하고 계속 엔터치면 키가 생성됨

id_rsa : key 값 (들어갈 때 사용하는 열쇠) [pem파일] / 클라이언트의 개인 키 파일
id_rsa.pub : 죄물쇠 (인증) / 클라이언트의 공개 키 파일
authorized_keys
cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub=> 이를 해주는 이유는 내가 만든 ec2에 모두 쉽게 접근하기 위함
=> 왜냐면 우리는 지금까지 만든 ec2 를 만들고 img를 만들어서 복제해줄 것 이기 때문에
1) 라이브러리 설치 : apt-get 라이브러리 설치
# EC2 Ubuntu terminal
# 설치 가능한 리스트 업데이트
$ sudo apt-get -y update
# 업데이트한 패키지들을 최신 버전에 맞게 업그레이드
$ sudo apt-get -y upgrade
# 의존성까지 체크해서 업그레이드
$ sudo apt-get -y dist-upgrade
# 필요 라이브러리 설치
$ sudo apt-get install -y vim wget unzip ssh openssh-* net-tools tree
# Ubuntu 20.4 에는 native libray 인 snappy 가 설치되어 있지 않다.
# 아래 snappy 설치를 하지 않으면 하둡 설치 후 snappy 사용 시 에러가 발생한다.
$ sudo apt install libsnappy-dev -y
2) java 8 설치
# EC2 Ubuntu terminal
# Java 8 설치
$ sudo apt-get install -y openjdk-8-jdk
# Java 버전 확인
$ java -version
# Java 경로 확인
$ sudo find / -name java-8-openjdk-amd64 2>/dev/null
# /usr/lib/jvm/java-8-openjdk-amd64
3) java 환경변수 설정
# EC2 Ubuntu terminal
# Java 시스템 환경변수 등록 및 활성화
$ sudo vim /etc/environment
# 아래 내용 추가 후 저장
PATH 뒤에 ":/usr/lib/jvm/java-8-openjdk-amd64/bin" 추가
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# 시스템 환경변수 활성화
$ source /etc/environment
# 사용자 환경변수 등록
$ sudo echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
# 사용자 환경변수 활성화
$ source ~/.bashrc
4) 등록 확인
env | grep JAVA
1) Snappy native library 설치
sudo apt install libsnappy-dev -y
2) Mariadb Client 설치
sudo apt-get install -y mariadb-client
3) Python 설치
sudo apt-get install -y python3-pip
4) Anaconda 설치
mkdir ~/downloads && cd downloads
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
bash Anaconda3-2023.03-Linux-x86_64.sh
Enter 키를 누름스페이스바 클릭yes 입력Enter 키를 누르세요.conda init 실행: 설치 완료 후 Conda를 초기화하려면 yes를 입력source ~/.bashrc
5) 가상환경 생성
conda create --name pyspark python=3.8
conda activate pyspark
6) PySpark 설치
conda install -c conda-forge pyspark
7) 플랫폼 설치
버전 관리 진짜 힘들다!
플랫폼 다운로드 디렉토리 생성 및 플랫폼 다운로드
cd ~/downloads
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
wget https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
wget https://dlcdn.apache.org/zeppelin/zeppelin-0.10.1/zeppelin-0.10.1-bin-all.tgz
wget https://dlcdn.apache.org/flume/1.11.0/apache-flume-1.11.0-bin.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local
sudo tar -xzvf spark-3.5.1-bin-hadoop3.tgz -C /usr/local
sudo tar -xzvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local
sudo tar -xzvf kafka_2.12-3.6.2.tgz -C /usr/local
sudo tar -xzvf apache-hive-3.1.3-bin.tar.gz -C /usr/local/
sudo tar -zxvf zeppelin-0.10.1-bin-all.tgz -C /usr/local/
sudo tar -xzvf apache-flume-1.11.0-bin.tar.gz -C /usr/local
cd /usr/local
sudo ln -s hadoop-3.3.6 hadoop
sudo ln -s spark-3.5.1-bin-hadoop3 spark
sudo ln -s apache-zookeeper-3.8.4-bin zookeeper
sudo ln -s kafka_2.12-3.6.2 kafka
sudo ln -s apache-hive-3.1.3-bin hive
sudo ln -s zeppelin-0.10.1-bin-all zeppelin
sudo ln -s apache-flume-1.11.0-bin flume
sudo chown -R $USER:$USER /usr/local/
8) 환경변수 설정
sudo vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/spark/bin:/usr/local/spark/sbin:/usr/bin/python3:/usr/local/zookeeper/bin:/usr/local/kafka/bin:/usr/local/hive/bin:/usr/local/zeppelin/bin:/usr/local/flume/bin"
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
HADOOP_HOME="/usr/local/hadoop"
SPARK_HOME="/usr/local/spark"
ZOOKEEPER_HOME="/usr/local/zookeeper"
KAFKA_HOME="/usr/local/kafka"
HIVE_HOME="/usr/local/hive"
ZEPPELIN_HOME="/usr/local/zeppelin"
source /etc/environment
sudo echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc
sudo echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
sudo echo 'export HADOOP_COMMON_HOME=$HADOOP_HOME' >> ~/.bashrc
sudo echo 'export HADOOP_HDFS_HOME=$HADOOP_HOME' >> ~/.bashrc
sudo echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
sudo echo 'export HADOOP_YARN_HOME=$HADOOP_HOME' >> ~/.bashrc
sudo echo 'export HADOOP_MAPRED_HOME=$HADOOP_HOME' >> ~/.bashrc
sudo echo 'export SPARK_HOME=/usr/local/spark' >> ~/.bashrc
sudo echo 'export PYTHONPATH=/usr/bin/python3' >> ~/.bashrc
sudo echo 'export PYSPARK_PYTHON=/usr/bin/python3' >> ~/.bashrc
sudo echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> ~/.bashrc
sudo echo 'export KAFKA_HOME=/usr/local/kafka' >> ~/.bashrc
sudo echo 'export KAFKA_HEAP_OPTS="-Xmx512m -Xms512m"' >> ~/.bashrc
sudo echo 'export HIVE_HOME=/usr/local/hive' >> ~/.bashrc
sudo echo 'export ZEPPELIN_HOME=/usr/local/zeppelin' >> ~/.bashrc
source ~/.bashrc
9) Hive MySQL Connector
curl -o $HIVE_HOME/lib/mysql-connector-java-8.0.22.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22.jar
10) 하둡과의 Guava 파일 버전 충돌 문제 해결
rm $HIVE_HOME/lib/guava-19.0.jar
cp $HADOOP_HOME/share/hadoop/hdfs/lib/guava-27.0-jre.jar $HIVE_HOME/lib/