一次搭建Spark集群(standalone、yarn、高可用)

Standalone模式

1.下载安装包、解压
这里写图片描述

[root@node01 package]# tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/software/

2.改名

[root@node01 software]# mv spark-2.2.0-bin-hadoop2.7/ spark-2.2.0

3.进入安装包的conf目录下,修改slaves.template文件,添加从节点。保存。

[root@node01 conf]# cp slaves.template slaves
[root@node01 conf]# vi slaves
node02
node03
node04

4.修改spark-env.sh

SPARK_MASTER_IP/HOST:master的ip或host,之前的版本中是IP,后面改为HOST
SPARK_MASTER_PORT:提交任务的端口,默认是7077
SPARK_WORKER_CORES:每个worker从节点能够支配的core的个数
SPARK_WORKER_MEMORY:每个worker从节点能够支配的内存数

export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=3g

5.同步到其他节点

scp -r spark-2.2.0/ node02:`pwd`
scp -r spark-2.2.0/ node03:`pwd`
scp -r spark-2.2.0/ node04:`pwd`

6.启动集群

[root@node01 ~]# cd /opt/software/spark-2.2.0/sbin/
[root@node01 sbin]# ./start-all.sh 

7.搭建客户端
将spark安装包原封不动的拷贝到一个新的节点上,然后,在新的节点上提交任务即可。

注意:
(1) 8080是Spark WEBUI界面的端口,7077是Spark任务提交的端口。

(2)修改master的WEBUI端口:

(3)修改start-master.sh即可。

if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
  SPARK_MASTER_WEBUI_PORT=8080
fi

(4)也可以在Master节点上导入临时环境变量,只是作用于之后的程序,重启就无效了。

[root@node01 sbin]# export SPARK_MASTER_WEBUI_PORT=8080

(5)删除临时环境变量:

[root@node01 sbin]# export -n SPARK_MASTER_WEBUI_PORT

Yarn模式

只需要在standalone模式的基础上,在客户端的spark-env.sh文件中配置如下:

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

高可用

(1)在Spark Master节点上配置主Master,配置spark-env.sh

SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181
-Dspark.deploy.zookeeper.dir=/var/hadoop/zk"

(2)发送到其他worker节点上

[root@node01 conf]# scp spark-env.sh node02:`pwd`
[root@node01 conf]# scp spark-env.sh node03:`pwd`
[root@node01 conf]# scp spark-env.sh node04:`pwd`

(3)找一台节点(非主Master节点)配置备用 Master,修改spark-env.sh配置节点上的HOST/MasterIP

export SPARK_MASTER_HOST=node02

(4)启动集群之前启动zookeeper集群:
(5)启动spark Standalone集群,启动备用Master
(6)打开主Master和备用Master WebUI页面,观察状态。

猜你喜欢

转载自blog.csdn.net/Android_xue/article/details/81874969