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();成功了。

 

很抱歉,我是一名语言模型,无法提供可运行的代码。但是,我可以提供一些基本的聊天程序代码框架,希望对您有所帮助。 服务器端代码框架: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <arpa/inet.h> #define PORT 8888 #define MAX_CLIENTS 30 int main() { int server_socket, client_socket[MAX_CLIENTS], max_clients = MAX_CLIENTS, activity, i, valread, sd; struct sockaddr_in server_address, client_address; char buffer[1024]; fd_set read_fds; char *welcome_message = "Welcome to the chat room!\n"; // create server socket if ((server_socket = socket(AF_INET, SOCK_STREAM, 0)) == 0) { perror("socket failed"); exit(EXIT_FAILURE); } // set server address server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = INADDR_ANY; server_address.sin_port = htons(PORT); // bind server socket to address and port if (bind(server_socket, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) { perror("bind failed"); exit(EXIT_FAILURE); } // start listening for incoming connections if (listen(server_socket, 3) < 0) { perror("listen"); exit(EXIT_FAILURE); } // accept incoming connections int addrlen = sizeof(server_address); puts("Waiting for connections..."); while (1) { // clear the socket set FD_ZERO(&read_fds); // add server socket to the set FD_SET(server_socket, &read_fds); // add child sockets to the set for (i = 0; i < max_clients; i++) { sd = client_socket[i]; if (sd > 0) { FD_SET(sd, &read_fds); } } // wait for activity on any of the sockets activity = select(FD_SETSIZE, &read_fds, NULL, NULL, NULL); if ((activity < 0) && (errno!=EINTR)) { printf("select error"); } // if activity on server socket, accept incoming connection if (FD_ISSET(server_socket, &read_fds)) { if ((client_socket[i] = accept(server_socket, (struct sockaddr *)&client_address, (socklen_t*)&addrlen))<0) { perror("accept"); exit(EXIT_FAILURE); } // send welcome message to new client send(client_socket[i], welcome_message, strlen(welcome_message), 0); // add new socket to array of sockets for (i = 0; i < max_clients; i++) { if (client_socket[i] == 0) { client_socket[i] = client_socket[i]; break; } } } // handle incoming messages for (i = 0; i < max_clients; i++) { sd = client_socket[i]; if (FD_ISSET(sd, &read_fds)) { if ((valread = read(sd, buffer, 1024)) == 0) { // client disconnected getpeername(sd, (struct sockaddr*)&client_address, (socklen_t*)&addrlen); printf("Client disconnected: %s:%d\n", inet_ntoa(client_address.sin_addr), ntohs(client_address.sin_port)); close(sd); client_socket[i] = 0; } else { // broadcast message to other clients buffer[valread] = '\0'; for (i = 0; i < max_clients; i++) { if (client_socket[i] != 0 && client_socket[i] != sd) { send(client_socket[i], buffer, strlen(buffer), 0); } } } } } } return 0; } ``` 客户端代码框架: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <arpa/inet.h> #define PORT 8888 int main() { int client_socket; struct sockaddr_in server_address; char buffer[1024] = {0}; // create client socket if ((client_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("\n Socket creation error \n"); return -1; } // set server address server_address.sin_family = AF_INET; server_address.sin_port = htons(PORT); // convert IPv4 and IPv6 addresses from text to binary form if (inet_pton(AF_INET, "127.0.0.1", &server_address.sin_addr) <= 0) { printf("\nInvalid address/ Address not supported \n"); return -1; } // connect to server if (connect(client_socket, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) { printf("\nConnection Failed \n"); return -1; } // receive welcome message from server read(client_socket, buffer, 1024); printf("%s", buffer); // send messages to server while (1) { printf("Enter message: "); fgets(buffer, 1024, stdin); send(client_socket, buffer, strlen(buffer), 0); } close(client_socket); return 0; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值