centos7 기준입니다.

호스트명이 mast01인 서버에 설치할 예정이고,

실행은 hadoop 유저,

히스토리서버 역시 mast01서버에 띄우도록 하겠습니다.

 

mast01: master

work01~03: worker

 

 

hadoop이 설치되어있음을 가정합니다. 

https://developer-woong.tistory.com/36

 

hadoop 설치 (정리모음버전)

centos7 기준입니다. 6대의 서버가 준비되어있고, ntp설정, ip설정 및 호스트네임 등록, jdk 설정, zookeeper 설치가 완료됨을 가정합니다. https://developer-woong.tistory.com/37 centos linux ntp enable centos7 기준입니

developer-woong.tistory.com

 

1. Spark 압축 파일 다운로드 및 합축 해제

action server: mast01

user: root

pwd: -

cmd:

cd /opt/apps

wget https://archive.apache.org/dist/spark/spark-3.2.3/spark-3.2.3-bin-hadoop3.2.tgz

tar xvfz spark-3.2.3-bin-hadoop3.2.tgz

mv spark-3.2.3-bin-hadoop3.2/ spark-3.2.3

cd /opt/apps/spark-3.2.3/

 

2. Spark 설정파일 수정

action server: mast01

user: root

pwd: /opt/apps/spark-3.2.3

cmd:

vi conf/spark-env.sh

export JAVA_HOME=/opt/apps/jdk8
export HADOOP_HOME=/opt/apps/hadoop-3.3.5
export SPARK_HOME=/opt/apps/spark-3.3.5
export HADOOP_CONF_DIR=/opt/apps/hadoop-3.3.5/etc/hadoop
export YARN_CONF_DIR=/opt/apps/hadoop-3.3.5/etc/hadoop
# ssh 포트가 디폴트가 아니면 해당 행 추가
export SPARK_SSH_OPTS="-p 22002"
export SPARK_MASTER_WEBUI_PORT=28877
export SPARK_WORKER_WEBUI_PORT=28888
export SPARK_MASTER_URL=spark://mast01:7077
export SPARK_LOCAL_DIRS=/opt/apps/spark-3.2.3
export SPARK_WORKER_MEMORY=2g
export SPARK_EXECUTOR_MEMORY=2g
export SPARK_MASTER_IP=mast01

vi conf/spark-defaults.conf
spark.master    yarn
spark.eventLog.enabled  true
spark.eventLog.dir      hdfs://NNHA:8020/user/spark/log
spark.history.fs.logDirectory   hdfs://NNHA:8020/user/spark/log
# 로그 삭제 주기 설정
spark.history.fs.cleaner.enabled        true
spark.history.fs.cleaner.maxAge 7d
spark.history.fs.cleaner.interval       1d

# 실행권한 부여
chmod 755 conf/spark-env.sh

# workers 작성
vi conf/workers
work01
work02
work03

 

3. Spark 파일 재압축 및 work 서버 배포

action server: mast01

user: root

pwd: /opt/apps/

cmd:

tar cvfz spark.tar.gz ./spark-3.2.3/

scp -P 22002 ./spark.tar.gz root@work01:/opt/apps/
scp -P 22002 ./spark.tar.gz root@work02:/opt/apps/
scp -P 22002 ./spark.tar.gz root@work03:/opt/apps/

 

3. Spark 압축파일 해제 및 권한설정, 환경 변수 설정

action server: mast01, work01, work02, work03

user: root

pwd: /opt/apps/

cmd:

# work01~03 서버 실행
cd /opt/apps
tar xvfz spark.tar.gz

# mast01, work01~03 서버 실행
chown -R hadoop:hadoop /opt/apps/spark-3.2.3

vi /etc/profile.d/spark.sh
export SPARK_HOME=/opt/apps/spark-3.2.3
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin

source /etc/profile.d/spark.sh

su - hadoop
cd /opt/apps/spark-3.2.3

 

4. Spark log 폴더 생성

action server: mast01

user: hadoop

pwd: /opt/apps/spark-3.2.3

cmd:

hdfs dfs -mkdir /user/spark
hdfs dfs -mkdir /user/spark/log

 

5. Spark 실행

action server: mast01

user: hadoop

pwd: /opt/apps/spark-3.2.3

cmd:

# mast01서버에서 실행, master, workers
./sbin/start-master.sh
./sbin/start-workers.sh

# mast01서버에서 실행, 히스토리서버
./sbin/start-history-server.sh

결과확인

mast01:28877

mast01:18080

 

다음 포스팅에서 pyspark를 통해 워드카운트 예제를 실행해보겠습니다.

 

https://developer-woong.tistory.com/50

 

pyspark 워드 카운트 예제

앞전 포스팅에서 spark를 설치해보았고, 잘 동작하는지 테스트하기위해 pyspark를 통해 워드카운트를 실행해보겠습니다. spark가 설치되어있고, python3버전이 설치되어있음을 가정합니다. https://develo

developer-woong.tistory.com

 

반응형

+ Recent posts