一次搭建Spark集群(standalone、yarn、高可用)
程序员文章站
2022-04-01 16:38:37
...
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页面,观察状态。