Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark sbt中运行SparkContext错误:已存在名为LocalBackEndPoint的RpcEndpoint_Apache Spark - Fatal编程技术网

Apache spark sbt中运行SparkContext错误:已存在名为LocalBackEndPoint的RpcEndpoint

Apache spark sbt中运行SparkContext错误:已存在名为LocalBackEndPoint的RpcEndpoint,apache-spark,Apache Spark,spark testcase在Intellij中运行时正在工作,但通过sbt测试失败 在netty连接服务器建立期间,创建SparkContext失败: val sc = new SparkContext("local", "SamplingTest", new SparkConf()) 错误为java.lang.IllegalArgumentException:已经有一个名为localbackendpoint的RpcEndpoint。以下是stacktrace: [info] Samplin

spark testcase在Intellij中运行时正在工作,但通过
sbt测试失败

netty
连接服务器建立期间,创建
SparkContext
失败:

val sc = new SparkContext("local", "SamplingTest", new SparkConf())
错误为
java.lang.IllegalArgumentException:已经有一个名为localbackendpoint的RpcEndpoint
。以下是stacktrace:

[info] SamplingSpec:
[info] Factorization
[info] - should factorize *** FAILED *** (1 second, 957 milliseconds)
[info]   java.lang.IllegalArgumentException: There is already an RpcEndpoint called LocalBackendEndpoint
[info]   at org.apache.spark.rpc.netty.Dispatcher.registerRpcEndpoint(Dispatcher.scala:65)
[info]   at org.apache.spark.rpc.netty.NettyRpcEnv.setupEndpoint(NettyRpcEnv.scala:136)
[info]   at org.apache.spark.scheduler.local.LocalBackend.start(LocalBackend.scala:126)
[info]   at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:144)
[info]   at org.apache.spark.SparkContext.<init>(SparkContext.scala:530)
[info]   at org.vz.datasci.spark.ml.SamplingSpec$$anonfun$1.apply$mcV$sp(SamplingSpec.scala:13)
[info]采样规格:
[信息]因子分解
[信息]-应分解***失败***(1秒,957毫秒)
[info]java.lang.IllegalArgumentException:已经有一个名为LocalBackendPoint的RpcEndpoint
[信息]位于org.apache.spark.rpc.netty.Dispatcher.registerRpcEndpoint(Dispatcher.scala:65)
[信息]位于org.apache.spark.rpc.netty.nettyrpcev.setupEndpoint(nettyrpcev.scala:136)
[信息]位于org.apache.spark.scheduler.local.LocalBackend.start(LocalBackend.scala:126)
[信息]位于org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:144)
[信息]位于org.apache.spark.SparkContext(SparkContext.scala:530)
[信息]org.vz.datasci.spark.ml.SamplingSpec$$anonfun$1.apply$mcV$sp(SamplingSpec.scala:13)

只有一个SparkContext正在创建,ssh到本地主机可以正常工作。还有什么需要考虑的呢?

由于我的测试是并行运行的,所以我得到了相同的错误

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

测试中的并行执行:=false


不确定这是否是最好的解决方案,但它解决了它。

如果您使用的是spring boot java应用程序。你可以像……那样做


runClasses(新的并行计算机(true,false),类)

啊!!我没有考虑过!我会试试看。我将投票表决——即使这不能解决我的问题,也要记住这是一件好事。顺便问一下,它是否默认为并行执行?我本以为sequential会起作用,除非另有规定。根据官方文件:“默认情况下,sbt并行执行任务”。它将每个测试都视为一项任务。在哪里编写?在“@SpringBootApplication”中??