0

我有这个非常基本的代码可以从连接到在 linux 虚拟机上运行的 spark 集群的 windows 机器运行:

        string sparkMaster = "spark://192.168.1.193:7077";
        string hdfsURI = "hdfs://192.168.1.193:8020";

        var sparkContext = new SparkContext(new SparkConf().SetAppName("MobiusWordCount").SetMaster(sparkMaster));

按照“入门页面”中的说明进行操作(在 windows 网关机器上安装 spark 和其他先决条件):

D:\SparkCLR\runtime>scripts\sparkclr-submit.cmd --master spark://192.168.1.193:7077 --total-executor-cores 2 --exe Spark kCLR.exe "C:\Users\aaa\Documents \Visual Studio 2015\Projects\SparkCLR\SparkCLR\bin\Debug"

得到这个错误:

SPARKCLR_JAR=spark-clr_2.10-1.6.100.jar org.apache.spark.launcher.SparkCLRSubmitArguments.concatCmdOptions(SparkCLRSubmitArguments.scala:389) 在 org.apache.spark 的线程“主”java.lang.NullPointerException 中的异常。 launcher.SparkCLRSubmitArguments.buildCmdOptions(SparkCLRSubmitArguments.scala:492) at org.apache.spark.launcher.SparkCLRSubmitArguments$.main(SparkCLRSubmitArguments.scala:30) at org.apache.spark.launcher.SparkCLRSubmitArguments.main(SparkCLRSubmitArguments.scala) D :\SparkCLR\runtime>scripts\sparkclr-submit.cmd --verbose --master spark://192.168.1.193:7077 --total-executor-cores 2 --exe SparkCLR.exe "C:\Users\aaa\ Documents\Visual Studio 2015\Projects\SparkCLR\SparkCLR\bin\Debug" SPARKCLR_JAR=spark-clr_2.10-1.6.100.jar 线程“main”java.lang 中的异常。NullPointerException at org.apache.spark.launcher.SparkCLRSubmitArguments.concatCmdOptions(SparkCLRSubmitArguments.scala:389) at org.apache.spark.launcher.SparkCLRSubmitArguments.buildCmdOptions(SparkCLRSubmitArguments.scala:492) at org.apache.spark.launcher.SparkCLRSubmitArguments$ .main(SparkCLRSubmitArguments.scala:30) 在 org.apache.spark.launcher.SparkCLRSubmitArguments.main(SparkCLRSubmitArguments.scala)主要(SparkCLRSubmitArguments.scala)主要(SparkCLRSubmitArguments.scala)

有什么想法吗?

4

1 回答 1

1

您无需编译 Mobius 代码即可在 Linux 中使用它。您可以获取正式的Mobius 版本并使用它,或者如果您从 GitHub 存储库预构建 Mobius 二进制文件(jar 文件和 dll),您可以在 Windows 或 Linux 中使用它们,而不管它们是在什么平台上构建的。Mono 是在 Linux 中运行 Mobius 的要求。如果你选择在 Linux 中构建 Mobius,你也需要 Mono。

您需要在驱动程序配置文件中指定 CSharpBackendPortNumber 和 CSharpWorkerPath 仅用于在本地模式下调试 Mobius 驱动程序应用程序。这将通过将 C# 驱动程序进程从 Visual Studio 连接到在 IDE(IntelliJ 或 Eclipse)中单独启动的 JVM 进程(运行CSharpRunner )或使用带有“debug”参数的 sparkclr-submit 脚本来启用 C# Spark 应用程序的调试。

对于使用 Mobius 实现的 Apache Spark C# 应用程序的正常(非调试)执行,您只需运行 sparkclr-submit 脚本,而无需在驱动程序配置文件中启用调试开关(CSharpBackendPortNumber 和 CSharpWorkerPath)。您可以在入门页面找到运行 Mobius 应用程序的说明。这些说明包括在 Windows 和 Linux 中的独立和 YARN 集群中运行 Mobius。

于 2016-05-23T19:08:30.113 回答