一、背景
在安装 TiDB v6.0的时候,使用的是离线包,安装 TiSpark 采用的方式是 在线安装的形式,使用 Tiup 扩容的方式安装 TiSpark 集群。并且最高的 TiSpark 版本是 TiSpark v2.4.1,没有最新的 Release TiSpark v2.5.1 。给自己提了个问题,能否离线安装 TiSpark ?目前我的浅层的理解是:在已有 Spark 集群的方式下可以实现离线安装 TiSpark。
使用 TiUP 扩容的方式没有找到离线安装 TiSpark 的钥匙🔑
二、准备环境
2.1 准备安装包
离线安装: https://pingcap.com/zh/product-community/#TiDB 6.0.0-DMR
1)下载安装包 tidb-community-server-v6.0.0-linux-amd64.tar.gz
2)下载tookit tidb-community-toolkit-v6.0.0-linux-amd64.tar.gz
3)下载 Spark V3.1.3 https://dlcdn.apache.org/spark/spark-3.1.3/spark-3.1.3-bin-hadoop3.2.tgz
4)下载 TiSpark V2.5.1 https://github.com/pingcap/tispark/releases/download/v2.5.1/tispark-assembly-3.1-2.5.1.jar
2.2 Cluster111 拓扑
# cluster111.yml
server_configs:
tidb:
log.slow-threshold: 300
binlog.enable: false
binlog.ignore-error: false
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
schedule.leader-schedule-limit: 4
schedule.region-schedule-limit: 2048
schedule.replica-schedule-limit: 64
replication.location-labels:
- host
pd_servers:
- host: 10.0.2.15
# ssh_port: 22
# name: "pd-1"
client_port: 2379
# peer_port: 2380
tidb_servers:
- host: 10.0.2.15
tikv_servers:
- host: 10.0.2.15
# ssh_port: 22
port: 20160
status_port: 20180
config:
server.grpc-concurrency: 4
monitoring_servers:
- host: 10.0.2.15
grafana_servers:
- host: 10.0.2.15
alertmanager_servers:
- host: 10.0.2.15
mkdir -p /usr/local0/webserver/tidb/
cd /usr/local0/webserver/tidb/
tar -zxvf tidb-community-toolkit-v6.0.0-linux-amd64.tar.gz
tar -zxvf tidb-community-server-v6.0.0-linux-amd64.tar.gz
cd ./tidb-community-server-v6.0.0-linux-amd64/
sh local_install.sh
source /root/.bash_profile
tiup update cluster
tiup cluster list
# 检测环境配置并尝试修正
tiup cluster check ./cluster111.yml --user root -p --apply
# 安装cluster111
tiup cluster deploy cluster111 v6.0.0 ./cluster111.yml --user root -p
# 启动集群
tiup cluster start cluster111
tiup cluster display cluster111
2.3 离线安装 Cluster111
# 安装tiup
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source /root/.bash_profile
tiup update cluster
tiup cluster list
# 检测环境配置并尝试修正
tiup cluster check ./cluster111.yml --user root -p --apply
# 安装cluster111
tiup cluster deploy cluster111 v6.0.0 ./cluster111.yml --user root -p
# 启动集群
tiup cluster start cluster111
tiup cluster display cluster111
三、离线安装 TiSpark v2.5.1
3.1 解压 spark-3.1.3-bin-hadoop3.2.tgz
# 替换 Spark
mkdir -p /usr/local0/webserver/tispark && tar -zxvf spark-3.1.3-bin-hadoop3.2.tgz -C /usr/local0/webserver/tispark/
mv /usr/local0/webserver/tispark/spark-3.1.3-bin-hadoop3.2 /tidb-deploy/tispark-master-7077
chown tidb.tidb -R /tidb-deploy/tispark-master-7077
# 替换 TiSpark 包
cp -rf tispark-assembly-3.1-2.5.1.jar /tidb-deploy/tispark-master-7077/jars/
3.2 安装openjdk8(略)
3.3 spark-defaults.conf 中增加配置
# sql扩展类
spark.sql.extensions org.apache.spark.sql.TiExtensions
# master节点
spark.master spark://10.0.2.15:7077
# pd节点 多个pd用逗号隔开 如:10.16.20.1:2379,10.16.20.2:2379,10.16.20.3:2379
spark.tispark.pd.addresses 10.0.2.15:2379
3.4 启动 Spark 集群
/tidb-deploy/tispark-master-7077/sbin/start-all.sh
3.5 在已有 Spark 集群上部署 TiSpark
3.5.1 启动 Spark-shell 的方式
# 启动 spark-shell
/tidb-deploy/tispark-master-7077/bin/spark-shell --jars /tidb-deploy/tispark-master-7077/jars/tispark-assembly-3.1-2.5.1.jar
# 执行 spark.sql("select ti_version()").collect
3.5.2 启动 Spark-sql 的方式
# 启动 Spark-sql
/tidb-deploy/tispark-master-7077/bin/spark-sql --jars /tidb-deploy/tispark-master-7077/jars/tispark-assembly-3.1-2.5.1.jar
# 执行 select ti_version();
3.5.3 spark master的情况
五、总结
本篇实践了 以已有 Spark 集群的方式,实现离线安装 TiSpark v2.5.1,目前对TiSpark的理解还比较浅,后续会继续探索 TiSpark的功能。
如果您 只读使用 TiUP 扩容的方式如何离线扩容方式安装 TiSpark 可以留言!
谢谢!