簡體   English   中英

如何在集群上部署Spark-shell中使用的Scala文件?

[英]How to deploy scala files used in spark-shell on cluster?

我將spark-shell用於學習目的,並為此創建了幾個包含常用代碼(例如類定義)的scala文件。 我通過在外殼程序中調用“:load”命令來使用這些文件。 現在,我想在紗簇模式下使用spark-shell 我使用spark-shell --master yarn --deploy-mode client啟動它。 外殼啟動時沒有任何問題,但是當我嘗試運行“: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)

我想我將必須將外殼程序中加載的代碼共享給工作人員。 但是我該怎么做呢?

spark-shell對於快速測試很有用,但是一旦您對要執行的操作有了想法,然后將其組合成一個完整的程序,它的實用性就會直線下降。

您可能現在想繼續使用spark-submit命令。 請參閱有關提交申請的文檔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><main-class>的Java樣式路徑,例如com.example.MyMainClass <application-jar>是包含項目中的類的JAR文件的路徑,其他參數如我包含的鏈接中所述以上,但這兩個是在向集群提供代碼方面的兩個主要區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM