在 AWS EMR 集群上使用 SparkLauncher 时缺少 SPARK_HOME
Missing SPARK_HOME when using SparkLauncher on AWS EMR cluster
我正在使用 EMR 5.0 和 Spark 2.0.0。
我正在尝试使用 org.apache.spark.launcher.SparkLauncher
从 Scala spark 应用程序 运行 子 spark 应用程序
我需要使用 setSparkHome 设置 SPARK_HOME:
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 !")
}
})
在哪里可以找到我的 Spark 主页的适当路径?
该集群由 1 个主服务器、1 个核心服务器和 1 个任务服务器构建。
谢谢!
从 emr-4.0.0 开始,EMR 上的所有应用程序都在 /usr/lib 中。火花在 /usr/lib/spark.
我发现 AWS EMR 上的 Spark(使用版本 emr-5.23.0 和 emr-5.22.0 测试)没有在 EMR 核心节点上安装 Spark。只需检查 /usr/lib/spark 上的 EMR 节点安装,它与安装在 EMR MASTER 节点上的 SPARK_HOME 并不完全相同。
在 EMR CORE 节点上安装 Spark 解决了我的问题。
我正在使用 EMR 5.0 和 Spark 2.0.0。 我正在尝试使用 org.apache.spark.launcher.SparkLauncher
从 Scala spark 应用程序 运行 子 spark 应用程序我需要使用 setSparkHome 设置 SPARK_HOME:
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 !")
}
})
在哪里可以找到我的 Spark 主页的适当路径? 该集群由 1 个主服务器、1 个核心服务器和 1 个任务服务器构建。
谢谢!
从 emr-4.0.0 开始,EMR 上的所有应用程序都在 /usr/lib 中。火花在 /usr/lib/spark.
我发现 AWS EMR 上的 Spark(使用版本 emr-5.23.0 和 emr-5.22.0 测试)没有在 EMR 核心节点上安装 Spark。只需检查 /usr/lib/spark 上的 EMR 节点安装,它与安装在 EMR MASTER 节点上的 SPARK_HOME 并不完全相同。
在 EMR CORE 节点上安装 Spark 解决了我的问题。