docker中对Spark 应用中配置 MySQL 连接

在做下图的实验发现docker中的mysql和spark要建立连接需要 MySQL JDBC 驱动程序,所以出一个我的处理过程,供大伙参考。

dddf7cf13da540d98c41b1d8a0a59308.png首先要把两个docker镜像装好,下面是两个常用的:

829c0dd93d2f41748c8679f148d17207.png

然后就可以开始搭建环境了:

打开主机的cmd终端,创建一个 docker网络

docker network create spark-mysql-network

创建并启动MySQL容器(密码设置为password):

docker run --name mysql-container --network spark-mysql-network -e MYSQL_ROOT_PASSWORD=password -d mysql:tag

这里mysql-container随便设什么名字

创建并启动Spark容器

docker run --name spark-container --network spark-mysql-network -d bitnami/spark:latest

这里spark-container随便设什么名字

将 MySQL 和 Spark 容器连接到这个网络(这一步检查有没有在两个容器有没有在网络里面)

docker network connect spark-mysql-network mysql-container

docker network connect spark-mysql-network spark-container

添加 JDBC 驱动:

docker cp mysql-connector-java-8.2.0.jar spark-container:/opt/bitnami/spark/jars

这里mysql-connector-java-8.2.0.jars是在MySQL :: Download Connector/J下载:

9a749a352ef34cd49fa4fdb0e5f48b9a.png

选择Platform Independent:

下载tar.gz然后解压,把jar包提取出来,

e02a84c84af34bf3a5d4755544e186e2.png

然后随便放在哪个路径里,最好不要有中文路径,然后运行这行代码:

docker cp mysql-connector-java-8.2.0.jar spark-container:/opt/bitnami/spark/jars

如果名字路径不对就把对应的名字或者路径设置一下,在mysql-connector-java-8.2.0.jar这个地方

然后启动spark-shell即可运行一个带有JDBC驱动的spark程序了

顺带一提,mysql的运行我也大致放出来:

docker exec -it mysql-container mysql -u root -p

然后输入密码,在 MySQL 提示符下,执行以下 SQL 命令:

CREATE DATABASE sparktest;
USE sparktest;
CREATE TABLE employee (id INT, name VARCHAR(50), gender CHAR(1), age INT);
INSERT INTO employee (id, name, gender, age) VALUES (1, 'Alice', 'F', 22), (2, 'John', 'M', 25);

其余的在spark-shell里面完成,解释一下我的做法:

JDBC URL - 使用 MySQL 容器的名称作为主机名

val jdbcUrl = "jdbc:mysql://mysql-container:3306/sparktest"
val connectionProperties = new java.util.Properties() 
connectionProperties.put("user", "root") 
connectionProperties.put("password", "password")

第一行代码的意思就是在 Scala 中定义了一个 JDBC URL,用于连接到 MySQL 数据库,3306是MySQL 的默认端口号。

 

 

  • 33
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值