Dataproc Spark/Hadoop Job无法通过Private IP连接Cloud SQL求助
解决方案建议
1. 核对Spark Job的JDBC连接参数
确认Spark代码中的JDBC URL是否正确使用Cloud SQL的Private IP,而非公网IP或可能解析到公网的域名;同时检查端口是否为MySQL默认的3306,避免代码中误修改端口值。
2. 验证Worker节点的网络连通性
Spark Job可能在Worker节点上执行,需确认Worker节点的网络配置:
- 检查Worker节点所属子网是否启用了Private Google Access
- 确认子网防火墙规则允许出站访问Cloud SQL的3306端口
3. 确认服务账号权限生效
虽然已为Dataproc服务账号添加SQL Client角色,仍需确认该角色权限覆盖当前Cloud SQL实例,且无组织/项目级别的权限策略限制生效。可临时在Spark代码中指定服务账号密钥测试,排查是否为权限问题。
4. 检查JDBC驱动兼容性
确认Spark使用的MySQL JDBC驱动版本与Cloud SQL的MySQL版本匹配:比如MySQL 8.0及以上版本需使用com.mysql.cj.jdbc.Driver驱动类,旧版com.mysql.jdbc.Driver可能导致连接异常。
5. 排查Cloud SQL连接数限制
查看Cloud SQL控制台的连接数指标,确认实例最大连接数未被占满——命令行单连接能成功,但Spark Job可能并发创建大量连接,触发实例的连接数限制。
内容的提问来源于stack exchange,提问作者Jay99
相关产品推荐
相关产品推荐

