brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Jun 04. 2019

Linux: MESOS & ZK & SPARK

자원관리와 스케쥴링.

1. Zookeeper 설치 / 실행

2. Mesos 설치 / 실행

3. Spark 설치 / 실행


CentOS7 AWS VM 에서 진행.

2CORES, 6GB MEMORY, 1TB DISK_CAPACITY


1번은 패스~!

이전 포스팅에서 언급.

Zookeeper 는 172.31.33.208 에서 실행 중. 2181 Default 사용 중.


2번 Mesos 설치 / 실행,


>> curl -L -O http://repos.mesosphere.com/el/7/x86_64/RPMS/mesos-1.8.0-2.0.1.el7.x86_64.rpm

>> rpm -vi mesos-1.8.0-2.0.1.el7.x86_64.rpm


요때, Dependencies 관련 Error 발생,


>> yum install subversion cyrus-sasl-md5 libevent-devel libssl*

>> rpm -vi mesos-1.8.0-2.0.1.el7.x86_64.rpm

>> systemctl daemon-reload


바로 실행,


>> service mesos-master start

>> service mesos-slave start



설치와 실행 완료.

mesos 프로세스 확인


Mesos 는 5050 Default 사용.

http://IPADDRESS:5050
mesos-salve 를 통한 agent 생성 결과


3번 Spark 설치 / 실행,


>> wget http://www-eu.apache.org/dist/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz

>> tar -xzvf spark-2.4.3-bin-hadoop2.7.tgz

>> ln -s spark-2.4.3-bin-hadoop2.7 /opt/spark


/opt/spark 경로를 시스템에게 알려준다.


>> export SPARK_HOME=/opt/spark

>> export $SPARK_HOME/bin:$PATH


pysaprk 설치,


>> pip install pysaprk



설치는 이걸로 끝.


이전에 사용한 Network Traffic 관련 데이터 분석 스크립트를 재활용해서

spark를 실행.


>> spark-submit --master mesos://172.31.33.208:5050 --packages org.apache.kafka:kafka-clients:0.10.0.1,org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.3 --supervise --executor-memory 2G --total-executor-cores 1 spark_kafka2.py


1 CORE / 2G MEMORY 옵션을 추가.

단일 MASTER 에서의 클러스터 모드가 Default 옵션으로 적용.


실제로 mesos web UI 에서 확인하면,

1 CPU, 2.4 Mem 을 사용하여 작동 중에 있다.


살짝 결과 화면을 보면,

이런 식으로 Console 에 주기적으로(Near Real Time 같은 느낌...) 화면에 뿌려진다.


사실 그냥 Spark 가 진화하면 이런 자원 관리도 알아서 할 수 있지 않을까? 하는 기대도 있다.

근데 지금은 안된다.

이게 중요하다.


앞으로 거대한 빅데이터 분석 시스템을 사용한다면,

Mesos와 같은 도구의 힘을 빌리지 않고서는 제대로 운영 / 관리를 할 수 없다.


끝.

작가의 이전글 Linux: NGINX 설정
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari