일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 여행의이유
- neovim
- 런데이애플워치
- 콜드브루메이커
- 미국배당주투자
- 러닝크루
- 마이더치콜드브루
- apollo-server-v3
- 잘쉬어야지
- 이코노미스트한국구독센터
- 플라스틱은 어떻게 브랜드의 무기가 되는가
- apollo-sandbox
- schema-registry
- kafka-connect
- liveness
- 잠든사이월급버는미국배당주투자
- 스타벅스리저브콜드브루
- Zone2
- 재택끝나간다
- 티지아이포럼
- 달리기
- 집커피
- parquet
- 코로나19
- 런데이
- sky빛의아이들
- 플릿러너
- 오운완
- 재택커피
- sparksql
- Today
- Total
해뜨기전에자자
spark standalone cluster 본문
standalone cluster with standby masters 구성
참고: https://spark.apache.org/docs/2.3.0/spark-standalone.html
briefly.. standby master구성을 위해 zookeeper를 이용함
standalone는 걍 하둡은 접근가능하지만 kerberized hdfs 에 접근하는 방법을 제공하고있지 않음. ㅜㅜ
# 준비
environment:
- centos 7.4
- java 8
- ssh key setting
- zookeeper for HA
- servers
spark-master01
spark-master02
spark-slave01
spark-slave02
spark-slave03
# 설정
master01 에서 설정을 모두 마친다음 master02 slaves에 copy 함
## master01 setting
```
# 다운로드
wget http://mirror.apache-kr.org/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.6.tgz
tar xvfpz spark-2.3.0-bin-hadoop2.6.tgz
ln -s $PWD/spark-2.3.0-bin-hadoop2.6 spark
# SPARK_HOME, PATH등록
echo '''
export SPARK_HOME=$HOME/spark
export PATH=$PATH:$SPARK_HOME/bin
''' >> ~/.bashrc
source ~/.bashrc
# 슬레이브 등록
echo '''
joanne-spark-slave01
joanne-spark-slave02
joanne-spark-slave03
''' >> spark/conf/slaves
# spark-default.conf 세팅
echo '''spark.master spark://spark-master01:7077,spark-master02:7077
''' >> spark/conf/spark-default.conf
# HA 세팅
echo '''spark.deploy.recoveryMode=ZOOKEEPER
spark.deploy.zookeeper.url=zookeeperUrl:2181
spark.deploy.zookeeper.dir=/spark-cluster-01
```
## master02, slaves들에 copy
scp -rp 를 써서 copy. -rp 는 recursive하게, preserves time(변경, 액세스 시간), mode 유지 옵션
```
scp -rp ~/.bashrc deploy@spark-master02:~/.bashrc
scp -rp ~/spark deploy@spark-master02:~/spark
for i in $(seq -f "%02g" 1 3); do scp -rp ~/.bashrc deploy@spark-slave$i:~/.bashrc; done
for i in $(seq -f "%02g" 1 3); do scp -rp ~/spark deploy@spark-slave$i:~/spark; done
```
## master02 start script 수정
master02에 접속해서, 맨 아래로 내려가면 실행 인자중 하나를 수정한다
spark/sbin/start-master.sh
```
# as-is: 원래는 $CLASS 1이라고 되어있음 이걸 $CLASS 2로 바꾼다.
"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS 1 \
--host $SPARK_MASTER_HOST --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT \
$ORIGINAL_ARGS
# to-be
"${SPARK_HOME}/sbin"/spark-daemon.sh start $CLASS 2 \
--host $SPARK_MASTER_HOST --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT \
$ORIGINAL_ARGS
```
# cluster 실행
spark-master01: ~/spark/sbin/start-master.sh
spark-master02: ~/spark/sbin/start-master.sh
spark-master01: ~/spark/sbin/start-slaves.sh
잘된다~
'개발 > spark' 카테고리의 다른 글
Spark SQL로, Hive parquet 접근 시 필드명이 parquet schema와 다르게 잡힐 때.. (0) | 2020.11.19 |
---|---|
spark mongodb upsert, merge (0) | 2020.07.06 |
pyspark timezone, datetime handling function (0) | 2020.06.01 |