如何在集群上部署spark shell中使用的scala文件?

如何在集群上部署spark shell中使用的scala文件?,scala,apache-spark,yarn,Scala,Apache Spark,Yarn,我使用sparkshell进行学习,为此我创建了几个包含常用代码(如类定义)的scala文件。我通过在shell中调用“:load”命令来使用这些文件。 现在我想在纱线簇模式下使用火花壳。我使用spark shell--master Thread--deploy模式客户端启动它。 shell启动时没有任何问题,但是当我尝试运行由“:load”加载的代码时,我会得到执行错误 17/05/04 07:59:36 WARN YarnSchedulerBackend$YarnSchedulerEndp

我使用
sparkshell
进行学习,为此我创建了几个包含常用代码(如类定义)的scala文件。我通过在shell中调用“:load”命令来使用这些文件。 现在我想在纱线簇模式下使用
火花壳
。我使用spark shell--master Thread--deploy模式客户端启动它。 shell启动时没有任何问题,但是当我尝试运行由“:load”加载的代码时,我会得到执行错误

 17/05/04 07:59:36 WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Container marked as failed: container_e68_1493271022021_0168_01_000002 on host: xxxw03.mine.de. Exit status: 50. Diagnostics: Exception from container-launch.
Container id: container_e68_1493271022021_0168_01_000002
Exit code: 50
Stack trace: ExitCodeException exitCode=50:
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:933)
        at org.apache.hadoop.util.Shell.run(Shell.java:844)
        at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1123)
        at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:225)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:317)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:83)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

我想我必须把装在shell中的代码分享给工作人员。但是我该怎么做呢?

spark shell对于快速测试非常有用,但是一旦你知道了你想要做什么并编写了一个完整的程序,它的实用性就会直线下降

您现在可能想继续使用
spark submit
命令。 请参阅提交申请的文档

使用此命令可以提供一个JAR文件,而不是单个类文件

./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]
/bin/spark提交\
--阶级\
--主人\
--部署模式\
--形态=\
... # 其他选择
\
[应用程序参数]
是类的Java风格路径,例如
com.example.MyMainClass

是指向包含项目中的类的JAR文件的路径,其他参数如我在上面包含的链接中所述,但这两个参数是在如何向集群提供代码方面的两个关键区别。

Thx。我希望得到另一个,但看起来我必须改变我使用spark submit的方式。