黑猴子的家:Spark Standalone 模式环境安装部署

Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的Standalone集群部署模式。

黑猴子的家:Spark Standalone 模式环境安装部署

1、集群角色

黑猴子的家:Spark Standalone 模式环境安装部署

从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Worker节点、Driver、Application的状态。Worker节点负责具体的业务运行。

从Spark程序运行的层面来看,Spark主要分为驱动器节点和执行器节点。

2、集群规划

node1 node2 node3
master worker worker

3、虚拟机准备

1)准备3台虚拟机
2)配置ip地址
3)配置主机名称
4)配置主机名映射hosts
5)禁用selinux
6)关闭防火墙

CentOS7基本环境设置
https://www.jianshu.com/p/76a415f9fb0f

CentOS6基本环境设置
https://www.jianshu.com/p/f93598c66ca9

7)安装jdk1.8
https://www.jianshu.com/p/b37c70d61e2a

8)安装 zookeeper
https://www.jianshu.com/p/e04167aef33a

9)安装 Hadoop
https://www.jianshu.com/p/2d8518b19ee5

4、Scala jar 包下载

https://www.jianshu.com/p/6caad98f2fce

5、Spark jar 包下载

https://www.jianshu.com/writer#/notebooks/29194484/notes/33679124

6、Scala 安装

https://www.jianshu.com/p/e064987e5a0a
尖叫提示: /etc/profile.d/custom.sh 同样需要配置

7、Spark安装

解压安装包

[[email protected] software]$ tar -xzvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module
[[email protected] software]$ cd /opt/module
[[email protected] module]$ ln -s spark-2.1.1-bin-hadoop2.7 spark

配置环境变量(最好不配置)

[[email protected] module]$ sudo vim /etc/profile
#spark path
export SPARK_HOME=/opt/module/spark
export PATH=${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH

8、以复制的方式,创建slaves、spark-env.sh、文件

[[email protected] ~]$ cd /opt/module/spark/conf/
[[email protected] conf]$ pwd
/opt/module/spark/conf
[[email protected] conf]$ cp slaves.template slaves
[[email protected] conf]$ cp spark-env.sh.template spark-env.sh

9、编辑slave文件,将work的hostname写入

[[email protected] conf]$ vim slaves
node2
node3

10、编辑spark-env.sh,配置master

[[email protected] conf]$ vim spark-env.sh
SPARK_MASTER_HOST=node1
SPARK_MASTER_PORT=7077
**下方配置,用来告诉可以在这里配置什么信息,此时不用配置**
# JAVA_HOME
JAVA_HOME=/opt/module/jdk
# SCALA_HOME
SCALA_HOME=/opt/module/scala
#Hadoop 配置文件目录
HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
#本机IP地址(也可以配置主机名映射hadoop102)每个节点分别修改
SPARK_LOCAL_IP=192.168.2.102
#spark日志目录
SPARK_LOG_DIR=/opt/module/spark/log
#集群守护进程pid文件目录
SPARK_PID_DIR=/opt/module/spark/pid
#Spark临时文件目录
SPARK_LOCAL_DIRS=/opt/module/spark/tmp

11、将配置好的Spark拷贝到其他节点上

[[email protected] module]$ rsync -rvl spark-2.1.1-bin-hadoop2.7 [email protected]:/opt/module
[[email protected] module]$ rsync -rvl spark-2.1.1-bin-hadoop2.7 [email protected]:/opt/module
[[email protected] module]$ rsync -rvl spark [email protected]:/opt/module/
[[email protected] module]$ rsync -rvl spark [email protected]:/opt/module/

12、在master节点上启动Spark集群

[[email protected] ~]$ cd /opt/module/spark/
[[email protected] ~]$ sbin/start-all.sh

13、web浏览器页面查看

http://node1:8080/
黑猴子的家:Spark Standalone 模式环境安装部署

14、命令方式jps查看

[[email protected] module]$ jps
6978 Jps
6820 Master

[[email protected] module]$ jps
6967 Jps
6905 Worker

[[email protected] module]$ jps
6716 Jps
6623 Worker
尖叫提示:如果遇到 “JAVA_HOME not set” 异常,可以在sbin目录下的spark-config.sh 文件中加入“export JAVA_HOME= /opt/module/jdk1.8.0_144”

15、执行一个spark程序(Standalone)

[[email protected] spark]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node1:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/module/spark/examples/jars/spark-examples_2.11-2.1.1.jar \
100
参数说明:
--master spark://node1:7077 指定Master的地址
--executor-memory 1G 指定每个executor可用内存为1G
--total-executor-cores 2 指定每个executor使用的cup核数为2个
该算法是利用蒙特•卡罗算法求PI(π)

16、进入客户端

[[email protected] spark]$ bin/spark-shell --master spark://node1:7077