2
私はEMAR 5.0とSpark 2.0.0を使用しています。私はsetSparkHomeを使用してSPARK_HOMEを設定する必要がorg.apache.spark.launcher.SparkLauncherAWS EMRクラスタでSparkLauncherを使用している場合のSPARK_HOMEがありません
を使用してScalaのスパークアプリケーションから子スパークアプリケーションを実行しようとしています :
私はへの適切なパスを見つけることができますvar handle = new SparkLauncher()
.setAppResource("s3://my-bucket/python_code.py")
.setAppName("PythonAPP")
.setMaster("spark://" + sparkSession.conf.get("spark.driver.host") +":"+ sparkSession.conf.get("spark.driver.port"))
.setVerbose(true)
.setConf(SparkLauncher.EXECUTOR_CORES, "1")
.setSparkHome("/srv/spark") // not working
.setDeployMode("client")
.startApplication(
new SparkAppHandle.Listener() {
override def infoChanged(hndl: SparkAppHandle): Unit = {
System.out.println(hndl.getState() + " new state !")
}
override def stateChanged(hndl: SparkAppHandle): Unit = {
System.out.println(hndl.getState() + " new state !")
}
})
私のスパークホーム? クラスタは、1つのマスター、1つのコア、1つのタスクサーバーから構築されます。
ありがとうございます!
ありがとう、私はまだ同じエラーが発生します: '16/09/18 09:07:02エラーApplicationMaster:ユーザークラスが例外を投げました:java.io.IOException:"/usr/lib/sparkプログラムを実行できません/ bin/spark-submit ":エラー= 2、そのようなファイルまたはディレクトリがありません java.io.IOException:"/usr/lib/spark/bin/spark-submit "プログラムを実行できません:error = 2、 java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) org.apache.spark.launcher.SparkLauncher.startApplicationで\t(SparkLauncher.java:428) ' – Ulile
でディレクトリ \tあなたはマスター・インスタンス上でこれを実行していません? Sparkがインストールされている場合、/ usr/lib/sparkは確実にマスタに存在しますが、他のモードでは存在しません。 –
Btw、Spark masterをspark:// ...に設定していることに気付きましたが、YARN上で実行されるため、Spark on EMRは正しくありません。正しいスパークマスターは単なる「糸」です。 –