Spark实战(一)集群搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013305783/article/details/84984029

一、单个Mater

   1.官网下载spark安装包
   2.上次安装包到linux集群上并解压
   3.配置,cd到解压目录下的conf目录中,

cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
   在该配置文件中增加如下配置,并保持退出,注意在master上需要指定 export export SPARK_MASTER_HOST=192.168.62.131,否则会存在work连接不上master,一般情况下hosts中对于主机名, 都会绑定到127.0.0.1上, 这就导致spark在启动7077端口的时候, 会绑定在127.0.0.1:7077上, 这样其它主机就没有办法连接上来了
export JAVA_HOME=/home/hadoop/jdk1.8.0_161/
export SPARK_MASTER_IP=192.168.62.131
export SPARK_MASTER_PORT=7077
#export export SPARK_MASTER_HOST=192.168.62.131
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=512M
export SPARK_LOCAL_IP=192.168.62.131
export PYTHONH

   4.重命名并修改slaves.template文件,并添加work节点的地址

mv slaves.template slaves
vi slaves
mini3
mini4
mini5
   5.保存退出将配置好的Spark拷贝到其他节点上

   6.进入sbin目录下,执行start-all.sh启动集群,启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://mini1:8080/

在这里插入图片描述
   ubuntu18.04下要注意hostname,因为虚拟机是直接克隆的,导致每个机器hostname都一致,就会导致上面那种worker无法连接到master节点上,运行程序的时候会提示Initial job has not accepted any resources; check your cluster UI to ensure that workers are registe。ubuntu18.04下修改/etc/cloud/cloud.cfg 将preserve_hostname: false修改为preserve_hostname: true,然后再去/etc/hostname 修改主机名。
   到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,

二、Spark多个Master

   配置方式比较简单:
Spark集群规划:node1,node2是Master;node3,node4,node5是Worker

   1.首先安装zookeeper集群,指定node1,node2,node3上配置三个zookeeper节点。并启动

conf目录下zoo.cfg
dataDir=/home/hadoop/zookeeper/data
dataLogDir=/home/hadoop/zookeeper/log
server.1=mini1:2888:3888
server.2=mini2:2888:3888
server.3=mini3:2888:3888
在data目录中新建文件myid
根据各自的ip填写1,2,3

   2.修改spark中spark-env.sh文件,注释掉SPARK_MASTER_IP,添加zookeeper地址。

export JAVA_HOME=/home/hadoop/jdk1.8.0_161/
#export SPARK_MASTER_IP=mini1
export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=mini1:2181,mini2:2181,mini3:2181 -Dspark.deploy.zookeeper.dir=/spark"

   3.在node1节点上修改slaves配置文件内容指定worker节点
   4.在node1上执行sbin/start-all.sh脚本,然后在node2上执行sbin/start-master.sh启动第二个Master
在这里插入图片描述

在这里插入图片描述

   如上图,一个master的状态为ACTIVE,另一个为STANDBY,当停掉master1时,zookeeper集群会将master2状态改为ACTIVE

猜你喜欢

转载自blog.csdn.net/u013305783/article/details/84984029