spark报错:ERROR SparkUI: Failed to bind SparkUI

文章描述了在IntelliJIDEA中运行Spark应用时遇到SparkUI启动失败的问题,原因是端口冲突。解决方案是通过增加`spark.port.maxRetries`的值来尝试更多重试,或者显式设置SparkUI的端口到可用的端口。作者通过在SparkSession构建器中添加配置项`.config(spark.port.maxRetries,10000)`成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kUI' failed after 16 retries (starting from 4040)! Consider explicitly setting the appropriate port for the service 'SparkUI' (for example spark.ui.port for SparkUI) to an available port or increasing spark.port.maxRetries.

       at org.sparkproject.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)

       at org.sparkproject.jetty.server.ServerConnector.open(ServerConnector.java:310)

       at org.sparkproject.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)

       at org.sparkproject.jetty.server.ServerConnector.doStart(ServerConnector.java:234)

       at org.sparkproject.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)

       at org.apache.spark.ui.JettyUtils$.newConnector$1(JettyUtils.scala:302)

       at org.apache.spark.ui.JettyUtils$.httpConnect$1(JettyUtils.scala:333)

       at org.apache.spark.ui.JettyUtils$.$anonfun$startJettyServer$5(JettyUtils.scala:336)

       at org.apache.spark.ui.JettyUtils$.$anonfun$startJettyServer$5$adapted(JettyUtils.scala:336)

       at org.apache.spark.util.Utils$.$anonfun$startServiceOnPort$2(Utils.scala:2331)

       at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:158)

       at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:2323)

       at org.apache.spark.ui.JettyUtils$.startJettyServer(JettyUtils.scala:337)

       at org.apache.spark.ui.WebUI.bind(WebUI.scala:146)

       at org.apache.spark.SparkContext.$anonfun$new$11(SparkContext.scala:486)

       at org.apache.spark.SparkContext.$anonfun$new$11$adapted(SparkContext.scala:486)

       at scala.Option.foreach(Option.scala:407)

       at org.apache.spark.SparkContext.<init>(SparkContext.scala:486)

       at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2672)

       at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:945)

       at scala.Option.getOrElse(Option.scala:189)

       at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:939)

       at com.mm.rdd.WordCount$.main(WordCount.scala:6)

       at com.mm.rdd.WordCount.main(WordCount.scala)

23/05/08 11:46:11 INFO DiskBlockManager: Shutdown hook called

23/05/08 11:46:11 INFO ShutdownHookManager: Shutdown hook called

解决办法:

最终解决方案:

我是在IntellijIdea下运行的,试着安装了windows版本下的hadoop3.2.4核spark3.2.4,都不行;最后是创建统一入口SparkSession,指令后加了一条.config("spark.port.maxRetries",10000):

val spark = SparkSession.builder().master("local[*]").appName("word count").config("spark.port.maxRetries",10000).getOrCreate();成功了。

 

### 解决 Linux 环境下 MySQL 登录时遇到的 1045 错误 当尝试连接到 MySQL 数据库并收到 `ERROR 1045 (28000): Access denied for user 'user'@'host'` 的错误消息时,这通常意味着用户名或密码不正确,或者该用户没有权限访问数据库。 #### 验证 MySQL 安装路径 确认 MySQL 是否已安装以及其可执行文件的位置对于解决问题至关重要。通过命令行可以验证 MySQL 可执行文件的具体位置: ```bash [root@localhost local]# which mysql /usr/local/mysql8/bin/mysql ``` 此命令显示了 MySQL 命令行工具所在的目录[^1]。 #### 检查 MySQL 用户名和密码 确保使用的用户名和密码是正确的。如果不确定,默认情况下 root 用户可能没有任何密码设置。可以通过跳过授权表来重置密码: ```sql mysqld_safe --skip-grant-tables & mysql -u root FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; EXIT; ``` 上述 SQL 脚本用于更改 root 用户的密码,并刷新权限缓存以应用新的认证信息。 #### 修改配置文件中的主机地址 有时由于网络配置问题也可能引发此类错误。检查 `/etc/my.cnf.d/server.cnf` 或者其他相关配置文件内的 bind-address 参数是否被设为了特定 IP 地址而非默认值 `127.0.0.1` 。如果是这种情况,则应考虑将其更改为允许远程连接的形式,比如 `bind-address=0.0.0.0`. #### 使用安全的方式建立 SSL 连接 考虑到可能存在 SSL 握手失败的情况,如报错 `SSL connection error: error:00000001:lib(0):func(0):reason...` ,建议先禁用 SSL 测试能否正常登录;之后再逐步排查 SSL 设置方面的问题[^3]. #### 排除潜在的安全风险因素 最后需要注意的是,在排除故障的过程中要保持警惕,防止引入不必要的安全隐患。例如,不要轻易暴露敏感数据给不可信源,并遵循最小特权原则分配必要的操作权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值