2017-05-04 67 views
0

我使用spark-shell学习目的和我创建了一个包含常用的代码,例如类定义几个阶文件。我通过在shell中调用“:load”命令来使用这些文件。 现在我想在纱线集群模式下使用spark-shell英寸我开始使用spark-shell --master yarn --deploy-mode client。 壳开始没有任何问题,但是当我尝试运行由加载代码“:负荷”,我得到执行错误。如何部署火花外壳使用集群文件阶?

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中的代码分享给工作者。但我该怎么做呢?

回答

0

spark-shell对于快速测试非常有用,但一旦您对自己想要做的事情有了一个概念,并且整理出一个完整的程序,它的实用性就会大幅下降。

你可能想现在进入使用​​命令。 查看有关提交应用程序的文档https://spark.apache.org/docs/latest/submitting-applications.html

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

./bin/spark-submit \ 
    --class <main-class> \ 
    --master <master-url> \ 
    --deploy-mode <deploy-mode> \ 
    --conf <key>=<value> \ 
    ... # other options 
    <application-jar> \ 
    [application-arguments] 

<main-class>是Java风格的路径类如com.example.MyMainClass <application-jar>的路径包含在你的项目中的类和其他PARAMS的JAR文件是按文件我上面包含的链接,但是这两个是在你如何提供你的代码到集群方面的两个关键区别。

+0

THX的答案。我希望得到一个又一个,但它看起来像我不得不改变我的方式来使用火花提交。 –