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