前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark+Zookeeper搭建高可用Spark集群

Spark+Zookeeper搭建高可用Spark集群

作者头像
阿dai学长
发布2020-03-05 17:40:11
1.7K0
发布2020-03-05 17:40:11
举报
文章被收录于专栏:阿dai_linux

Spark三种分布式部署方式比较

目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,详情参考

Spark standalone模式分布式部署

环境介绍

主机名

应用

tvm11

zookeeper

tvm12

zookeeper

tvm13

zookeeper、spark(master)、spark(slave)、Scala

tvm14

spark(backup)、spark(slave)、Scala

tvm15

spark(slave)、Scala

说明

  • 依赖scala: Note that support for Java 7, Python 2.6 and old Hadoop versions before 2.6.5 were removed as of Spark 2.2.0. Support for Scala 2.10 was removed as of 2.3.0. Support for Scala 2.11 is deprecated as of Spark 2.4.1 and will be removed in Spark 3.0.
  • zookeeper: Master结点存在单点故障,所以要借助zookeeper,至少启动两台Master结点来实现高可用,配置方案比较简单。

安装scala

由上面的说明可知,spark对scala版本依赖较为严格,spark-2.4.5依赖scala-2.12.x,所以首先要安装scala-2.12.x,在此选用scala-2.12.10。使用二进制安装:

代码语言:javascript
复制
$ wget https://downloads.lightbend.com/scala/2.12.10/scala-2.12.10.tgz
$ tar zxvf scala-2.12.10.tgz -C /path/to/scala_install_dir

如果系统环境也要使用相同版本的scala,可以将其加入到用户环境变量(.bashrc或.bash_profile)。

安装spark

  • 打通三台spark机器的work用户ssh通道;
  • 现在安装包到master机器:tvm13;
  • 下载地址
  • 注意提示信息。
  • 解压到安装目录即可。

配置spark

spark服务配置文件主要有两个:spark-env.sh和slaves。

  • spark-evn.sh:配置spark运行相关环境变量
  • slaves:指定worker服务器

配置spark-env.sh:cp spark-env.sh.template spark-env.sh

代码语言:javascript
复制
export JAVA_HOME=/data/template/j/java/jdk1.8.0_201
export SCALA_HOME=/data/template/s/scala/scala-2.12.10
export SPARK_WORKER_MEMORY=2048m
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=2
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=tvm11:2181,tvm12:2181,tvm13:2181 -Dspark.deploy.zookeeper.dir=/data/template/s/spark"

# 关于 SPARK_DAEMON_JAVA_OPTS 参数含义:
	# -Dspark.deploy.recoverMode=ZOOKEEPER #代表发生故障使用zookeeper服务
	# -Dspark.depoly.zookeeper.url=master.hadoop,slave1.hadoop,slave1.hadoop #主机名的名字
	# -Dspark.deploy.zookeeper.dir=/spark #spark要在zookeeper上写数据时的保存目录

# 其他参数含义:https://blog.csdn.net/u010199356/article/details/89056304

配置slaves:cp slaves.template slaves

代码语言:javascript
复制
# A Spark Worker will be started on each of the machines listed below.
tvm13
tvm14
tvm15

配置系统环境变量

编辑 ~/.bashrc

代码语言:javascript
复制
export SPARK_HOME=/data/template/s/spark/spark-2.4.5-bin-hadoop2.7
export PATH=$SPARK_HOME/bin/:$PATH

分发

以上配置完成后,将 /path/to/spark-2.4.5-bin-hadoop2.7 分发至各个slave节点,并配置各个节点的环境变量。

启动

  • 先在master节点启动所有服务:./sbin/start-all.sh
  • 然后在backup节点单独启动master服务:./sbin/start-master.sh

查看状态

启动完成后到web去查看:

  • master(8081端口):Status: ALIVE
  • backup(8080端口):Status: STANDBY

完成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spark三种分布式部署方式比较
  • Spark standalone模式分布式部署
    • 环境介绍
      • 说明
        • 安装scala
          • 安装spark
            • 配置spark
              • 配置系统环境变量
                • 分发
                  • 启动
                    • 查看状态
                    相关产品与服务
                    云服务器
                    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档