You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Spark连接被目标计算机拒绝问题求助(Windows 11环境)

.NET Spark 连接被拒绝(127.0.0.1:xxxx)问题排查与解决

问题根源分析

  • .NET Spark后端服务未启动/关联失败
    .NET Spark依赖专属的dotnet-spark后端服务实现与Spark集群的通信。如果该服务未启动,或启动时端口配置与应用不一致,即使手动修改端口环境变量,也会触发连接拒绝错误。

  • 本地Spark集群未正常运行
    Windows本地模式下,必须确保Spark master和worker节点已启动。若集群未运行,应用无法建立通信链路,换端口也无法解决根本问题。

  • 系统权限或防火墙拦截
    Windows 11的UAC权限限制、防火墙规则可能拦截.NET Spark的网络请求,导致连接被拒绝。

解决步骤

  1. 启动并关联.NET Spark后端服务
    打开命令提示符,执行以下命令启动后端服务(替换为你的应用路径):

    dotnet spark submit --master local[*] --class org.apache.spark.deploy.dotnet.DotnetRunner path/to/your/MySparkApp.dll
    

    或在Visual Studio项目属性中,设置调试启动命令为dotnet spark submit,并配置对应参数,确保后端服务与应用同步启动。

  2. 验证本地Spark集群状态
    访问Spark Web UI(默认地址http://localhost:4040)确认集群正常运行。若未启动,进入Spark安装目录执行:

    .\bin\spark-shell.cmd
    

    等待集群初始化完成后再运行应用。

  3. 调整系统权限与防火墙设置

    • 右键Visual Studio选择「以管理员身份运行」,避免UAC权限限制;
    • 检查Windows防火墙规则,允许dotnet.exe和java.exe(Spark依赖Java)的网络连接,或临时关闭防火墙测试。
  4. 统一端口配置
    取消代码中Environment.SetEnvironmentVariable的注释,同时确保后端服务使用相同端口:

    Environment.SetEnvironmentVariable("DOTNETBACKEND_PORT", "56511");
    

    在命令行启动时同步设置环境变量:

    set DOTNETBACKEND_PORT=56511
    dotnet spark submit --master local[*] --class org.apache.spark.deploy.dotnet.DotnetRunner path/to/your/MySparkApp.dll
    

    或在Visual Studio项目属性→调试→环境变量中添加DOTNETBACKEND_PORT=56511,保证应用与后端服务端口一致。

用户提供的代码

using Microsoft.Spark.Sql;
using System;
using Newtonsoft.Json.Linq;
using static Microsoft.Spark.Sql.Functions;

namespace MySparkApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //Environment.SetEnvironmentVariable("DOTNETBACKEND_PORT", "56511");

            // Create Spark session
            SparkSession spark =
                SparkSession                    
                    .Builder()
                    .AppName("word_count_sample")                    
                    .GetOrCreate();

            // Create initial DataFrame
            string filePath = args[0];
            DataFrame dataFrame = spark.Read().Text(filePath);

            //Count words
            DataFrame words =
                dataFrame
                    .Select(Split(Col("value"), " ").Alias("words"))
                    .Select(Explode(Col("words")).Alias("word"))
                    .GroupBy("word")
                    .Count()
                    .OrderBy(Col("count").Desc());

            // Display results
            words.Show();

            // Stop Spark session
            spark.Stop();
        }
    }
}

内容的提问来源于stack exchange,提问作者jad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:31:03