Spark를 설치하고 Mesos 클러스터와 소통을 확인하기 전의 단계
개요
Spark를 설치하여 Mesos 클러스터와의 통신을 확인합니다.
상당히 마치므로 메모로 남겨 둡니다.
Mesos 클러스터는 이전에 작성한 다음 기사의 것을 사용하므로 참고하십시오.
[Mesos를 쉽게 설치]
htps : // 이 m/48 땜 ds/이고 ms/5d17372b81b1923b16 아7
※각 머신의 OS는 CentOS7입니다. 또한 각 기계의 메모리는 2GB 이상을 원합니다. 메모리가 적으면 Spark를 실행할 수 없습니다.
사전 준비
Java 설치
Spark는 JVM에서 실행되므로 Java를 Mesos 클러스터를 구성하는 모든 시스템 (
node1
, node2
, node3
, node4
)에 Java를 설치하십시오.sudo yum install -y java-1.8.0-openjdk
Spark 설치
Spark2.3.0 다운로드
Spark 설치도 Mesos 클러스터를 구축하는 모든 시스템에서 수행해야 합니다.
cd ~
curl -O http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz
sudo tar xvfz spark-2.3.0-bin-hadoop2.7.tgz -C /opt/
spark-env.sh 설정
이 설정은 Mesos 클러스터를 구축하는 모든 시스템에서도 수행해야 합니다.
/opt/spark-2.3.0-bin-hadoop2.7/conf/spark-env.sh
를 각 기계에서 다음과 같이 설정하십시오./opt/spark-2.3.0-bin-hadoop2.7/conf/spark-env.sh
MESOS_NATIVE_JAVA_LIBRARY=/usr/lib/libmesos.so
SPARK_LOCAL_IP=各自のIPアドレス
LIBPROCESS_IP=各自のIPアドレス
# 以下の2行は十分なメモリリソースがあれば不要
# 今回はメモリリソースが2GBぐらいしかないので仕方なく設定しています。
SPARK_DRIVER_MEMORY=512M
SPARK_DAEMON_MEMORY=256M
SPARK_HOME 설정
이 설정은 Mesos 마스터 (필자의 환경이라면
node1
)만으로 괜찮습니다.Spark를 실행하는 사용자의 환경 변수로 설정합니다.
echo 'export SPARK_HOME=/opt/spark-2.3.0-bin-hadoop2.7' >> ~/.bash_profile
source ~/.bash_profile
이 설정에 의해, Spark의 분산 실행처(Mesos 슬레이브측)에서
SPARK_HOME
가 환경 변수로서 설정되어 있지 않아도, /opt/spark-2.3.0-bin-hadoop2.7
를 디폴트로 참조해 주는 것 같습니다.spark-shell에서 Mesos에서 분산 처리할 수 있는지 확인
spark-shell
를 Mesos 상에서 움직여 확인한다.매개변수이지만, 자세하게 설명하면,
executor-memory
는 Mesos Slave 측에서 Spark의 분산 처리 실행을 위해 할당하는 메모리 (당연히 Mesos 자원을 초과하는 것은 NG).total-executor-cores
는 Spark 작업을 처리하는 데 필요한 전체 클러스터의 코어 수를 나타냅니다.$SPARK_HOME/bin/spark-shell \
--master mesos://MesosマスタのIP:5050 \
--executor-memory 512M \
--total-executor-cores 3
...
spark context Web UI available at http://192.168.33.41:4040
Spark context available as 'sc' (master = mesos://192.168.33.41:5050, app id = 54c5ee8e-cd99-408a-b815-2c62c9f3fbb0-0011).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.3.0
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_171)
Type in expressions to have them evaluated.
Type :help for more information.
scala> sc.parallelize(1 to 10000,30).sum
res1: Double = 5.0005E7
계산할 수 있으면 OK!
sc.parallelize(1 to 10000,30).sum
의 부분은 1에서 10000까지의 자연수의 합계를 계산하는 처리를 30분할로 분산 실행한다고 하는 의미가 됩니다.UI도 다음과 같이 되어 있으면 OK!
[Mesos UI]
http://Mesos 마스터의 IP:5050
[Spark WebUI]
http://Mesos 마스터의 IP:4040
샘플 JAR 앱 실행
부속의 JAR 샘플 앱으로 원주율 계산을 실행할 수 있을지도 염려 때문에 확인해 둡니다. 로그가 어떻게 출력되지만, 도중에 그와 같은 값을 확인할 수 있어야합니다.
$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master mesos://MesosマスタのIP:5050 \
--executor-memory 512M
--deploy-mode client \
$SPARK_HOME/examples/jars/spark-examples_2.11-2.3.0.jar \
1000
...
Pi is roughly 3.1417888714178885
...
이상, Spark를 인스톨하고 Mesos 클러스터에서 간단하게 동작시켜 확인하기까지의 순서였습니다.
Reference
이 문제에 관하여(Spark를 설치하고 Mesos 클러스터와 소통을 확인하기 전의 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chocomintkusoyaro/items/375993c042eb03e05e77텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)