1、下载
官网:http://spark.apache.org/downloads.html
2、解压安装
- 上传至master服务器
- 解压至/opt/目录
$ tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz -C /opt/
$ mv spark-2.3.0-bin-hadoop2.7 spark-2.3.0
3、配置信息
# 环境配置
vi /etc/profile
# 内容:
export SPARK_HOME=/opt/spark-2.3.0
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
cd /opt/spark-2.3.0/conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
# 内容:
export JAVA_HOME=/usr/java/default
export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
export YARN_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=slave1:2181,slave2:2181,slave3:2181 -Dspark.deploy.zookeeper.dir=/spark"
# Edit spark-default.conf
spark.master spark://master:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://mycluster:8020/spark/logs/ # 注意创建目录
spark.serializer org.apache.spark.serializer.KryoSerializer
# rename
mv slaves.template slaves
# edit content
slave1
slave2
slave3
4、安装分发
# 节点数为五,其中Worker节点:slave1、slave2、slave3,Master节点:master、standby
[root@master opt]$ scp -r spark-2.3.0/ standby:$PWD
[root@master opt]$ scp -r spark-2.3.0/ slave1:$PWD
[root@master opt]$ scp -r spark-2.3.0/ slave2:$PWD
[root@master opt]$ scp -r spark-2.3.0/ slave3:$PWD
5、启动
Spark三种集群模式:standalone(独立集群运行模式)、Yarn运行模式、Mesos运行模式。区别在于资源管理器的异同,资源管理器运用于Spark的运行流程:Spark客户端提交任务后,Spark驱动程序向资源管理器申请资源(内存核心、内存),然后在申请的资源下运行具体任务。
5.1 启动HDFS,创建spark logs目录;
5.2 启动Spark独立集群模式:
cd $SPARK_HOME
sbin/start-all.sh
sbin/start-history-server.sh
# 关闭命令
sbin/stop-all.sh
sbin/stop-history-server.sh
5.3 WebUI访问:http://master:8080
5.4 启动Standalone模式的Spark-shell实例:
cd $SPARK_HOME
./bin/spark-shell --master spark://master:7077
启动spark-shell的提示信息:
6、Spark Yarn运行模式
6.1 Spark Yarn运行模式分为集群模式(Cluster)和客户端模式(Client)。
6.1 在Yarn cluster模式下,Spark Driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行情况。用户提交作业后,即可关闭Client,但作业会继续在YARN上运行,因此Cluster模式不适合运行交互类型的作业。
6.2 在Yarn Client模式下,AM仅仅向YARN请求Executor,client会和请求到的Container通信来调度Container工作,因此不能关闭Client。
6.3 总结:Cluster模式的Spark Driver运行在AM中,而客户端模式的Spark Driver运行在客户端,所以YARN Cluster适合用于生产环境,而YARN Client适用于交互和调试,即希望快速观察到应用的输出信息。