写点什么

Spark Standalone 集群升级步骤

  • 2022 年 7 月 11 日
  • 本文字数:1575 字

    阅读完需:约 5 分钟

作者: marsishandsome 原文来源:https://tidb.net/blog/19eeb447


Spark Standalone 集群升级步骤


本文主要介绍 Spark Standalone 集群升级步骤,Spark on YARN 模式、Spark on Mesos 模式以及 Spark on k8s 不在本文介绍范围。


要搞明白 Spark Standalone 集群升级步骤,首先需要了解一下 Spark Standalone 集群部署原理。

Spark Standalone 集群部署原理

Spark Standalone 集群使用 Master-Slave 模式,常见的部署见下图,一个 Master+N 个 Slave。


Spark Standalone 集群配置文件

Spark Standalone 集群的配置文件都在 conf 目录下面,常用的有这几个:


  1. conf/spark-defaults.conf

  2. conf/spark-env.sh

  3. conf/log4j.properties


一般升级 spark 的时候,只需要把 conf 目录下面的文件拷贝到新的安装目录即可。

Spark Standalone 集群运维

Spark Standalone 集群运维脚本都在 sbin 目录下面,常用的有这几个:


  1. sbin/start-all.sh

  2. sbin/stop-all.sh


Spark Master 会通过 JVM 启动 org.apache.spark.deploy.master.Master 这个 Class。


Spark Worker 会通过 JVM 启动 org.apache.spark.deploy.worker.Worker 这个 Class。


可以通过 ps 或者 jps 查看当前机器是否已经启动了对应进程。


Spark Master 会开启本地 8080 端口,可以通过 http://${master ip}:8080 查看对应的网页。


Spark 日志一般在安装目录的 logs 子目录下,如果没有,请看一下 conf/spark-env.sh 里面的这个配置 SPARK_LOG_DIR。

Spark Standalone 集群升级步骤

准备工作

先确认一下


  1. 需要升级的 spark 集群是否是 standalone 集群(其他模式不在本文档描述范围)

  2. 是否单独给 TiSpark 使用(如果有其他业务使用,需要让其他业务确认)

  3. 有没有启动其他组件,例如 thriftserver、zeppelin 等(需要同时升级其他组件)

下载 Spark

Spark 下载地址 https://archive.apache.org/dist/spark/,


例如 spark-2.4.3,建议下载


https://archive.apache.org/dist/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz


下载 TiSpark

TiSpark 下载地址,https://github.com/pingcap/tispark/releases。


如果不知道下载哪个 jar 包,请看 https://github.com/pingcap/tispark#how-to-choose-tispark-version


升级步骤

  1. 停止老的 spark 集群 :运行 ./sbin/stop-all.sh,通过 ps 和 jps 确认进程已停止,同时看下进程日志进行确认

  2. 归档老集群:在所有 master 和 slave 机器上,将老的 spark 安装目录重命名

  3. 安装新集群:下载 spark 并解压到所有 master 和 slave 机器,并重命名为原来的名字

  4. 安装 tispark jar 包:tispark jar 包有 2 中使用方式,具体用哪种需要看原来的集群是用哪种(看老的 spark 安装目录下 jars 子目录里面有没有 tispark 的 jar 包)

  5. 将 tispark jar 包拷贝到 spark 安装目录下面的 jars 子目录

  6. 运行 bin/spark-shell 的时候通过–jar 命令指定 tispark jar 包

  7. 配置 conf:将原来的 conf 目录拷贝到新的安装目录

  8. 启动新集群:在新的 spark 目录里面运行./sbin/start-all.sh

  9. 打开 master web ui: [http://$](){master ip}:8080,确认可以访问,确认 work 个数、core 个数、内存数是否符合预期

  10. 简单测试:./bin/spark-shell –master spark://${master ip}:7077 运行一些简单的测试命令,例如看看是否能访问 tidb

  11. 回归测试:运行客户之前的程序,看看是否有问题,结果是否正确

TiSpark 兼容性

从 TiSpark-1.x 升级到 TiSpark-2.x 的时候需要特别注意一下兼容性,大概率需要客户修改代码。


TiSpark-1.x 需要使用 tidbMapDatabase 才能访问 tidb 的数据,例如


import org.apache.spark.sql.TiContext


val ti = new TiContext (spark)


ti.tidbMapDatabase (“tpch_test”)


spark.sql(“select count(*) from lineitem”).show


但是到了 TiSpark-2.x 用户不需要调用 tidbMapDatabase 直接可以访问,例如


spark.sql(“use tpch_test”)


spark.sql(“select count(*) from lineitem”).show


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
Spark Standalone集群升级步骤_TiDB 社区干货传送门_InfoQ写作社区