2017-05-04 10 views
0

私はspark-shellを学習目的で使用しています。そのために、クラス定義のようなよく使用されるコードを含むいくつかのスカラーファイルを作成しました。私はシェル内で ":load"コマンドを呼び出してファイルを使用します。 ここでは、spark-shellを糸クラスターモードで使用したいと考えています。私はspark-shell --master yarn --deploy-mode clientを使用して開始します。 シェルは問題なく起動しますが、 ":load"でロードされたコードを実行しようとすると、実行エラーが発生します。spark-shellで使用されるscalaファイルをクラスタにデプロイする方法は?

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) 

私は、シェルに読み込まれたコードをワーカーに共有する必要があると思います。しかし、どうしたらいいですか?

答えて

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>は、プロジェクトのクラスを含むJARファイルへのパスです。その他のパラメータは、上記のリンクに記載されていますが、これらの2つは、コードをクラスタに提供する方法の2つの重要な違いです。

+0

答えのためのThx。私は別のものを手に入れたいと思っていましたが、spark-submitを使うために自分のやり方を変えなければならないようです。 –

関連する問題