在sbt中运行SparkContext错误:已经有一个名为LocalBackendEndpoint的RpcEndpoint

时间:2017-01-27 05:07:43

标签: apache-spark

在Intellij中运行时,sp​​ark测试用例正在运行,但在using System; using System.Reflection; using Microsoft.WindowsAPICodePack.Shell.PropertySystem; namespace ConsoleApplication1 { internal class Program { private static void Main() { const string filePath1 = @"C:\Users\Mohammad\Downloads\Test\.....exe"; var shellFile = Microsoft.WindowsAPICodePack.Shell.ShellObject.FromParsingName(filePath1); foreach (var propertyInfo in typeof(ShellProperties.PropertySystem).GetProperties(BindingFlags.Public | BindingFlags.Instance)) { var shellProperty = propertyInfo.GetValue(shellFile.Properties.System, null) as IShellProperty; if (shellProperty?.ValueAsObject == null) continue; var shellPropertyValues = shellProperty.ValueAsObject as object[]; if (shellPropertyValues != null && shellPropertyValues.Length > 0) { foreach (var shellPropertyValue in shellPropertyValues) Console.WriteLine("{0} = {1}", propertyInfo.Name, shellPropertyValue); } else Console.WriteLine("{0} = {1}", propertyInfo.Name, shellProperty.ValueAsObject); } Console.ReadKey(); } } } 失败。

失败是在sbt test连接服务器建立期间创建SparkContext

netty

错误是val sc = new SparkContext("local", "SamplingTest", new SparkConf()) 。这是堆栈跟踪:

java.lang.IllegalArgumentException: There is already an RpcEndpoint called LocalBackendEndpoint

只创建了一个SparkContext,并且本地主机的ssh工作正常。还应该考虑什么?

2 个答案:

答案 0 :(得分:7)

我得到了同样的错误,因为我的测试是并行运行的。

在我的build.sbt中,我添加了:

  测试中的

parallelExecution:= false

不确定它是否是最佳解决方案,但它解决了它。

答案 1 :(得分:0)

如果您正在使用Spring Boot Java应用程序。您可以按..

JUnitCore.runClasses(new ParallelComputer(true,false),classes);