如何提交作业以激发在本地运行的主人

时间:2017-01-04 06:51:40

标签: r apache-spark sparkr

我使用R和spark运行一个简单的例子来测试spark。

我有一个使用以下内容在本地运行的spark master:

spark-class org.apache.spark.deploy.master.Master

我可以在http://localhost:8080/

看到状态页面

代码:

system("spark-submit --packages com.databricks:spark-csv_2.10:1.0.3 --master local[*]")

suppressPackageStartupMessages(library(SparkR)) # Load the library

sc <- sparkR.session(master = "local[*]")

df <- as.DataFrame(faithful)

head(df)

现在,当我执行以下操作时,此功能正常运行(代码保存为&#39; sparkcode&#39;):

Rscript sparkcode.R 

问题:

但是会发生一个新的spark实例,我希望R使用现有的主实例(应该将其视为已完成的作业http://localhost:8080/#completed-app

P.S:使用Mac OSX,spark 2.1.0和R 3.3.2

1 个答案:

答案 0 :(得分:1)

许多事情:

  • 如果您使用独立群集,请使用正确的网址sparkR.session(master = "spark://hostname:port")。主机名和端口都取决于配置,但标准端口为7077,主机名应默认为hostname。这是主要问题。
  • 避免直接使用spark-class。这是$SPARK_HOME/sbin/脚本的用途(如start-master.sh)。对你来说,没有至关重要的但却处理繁琐的小任务。
  • 独立主服务器只是资源管理器。您还必须启动工作节点(start-slave*)。
  • 通常最好使用bin/spark-submit,尽管这里不应该太重要。
  • Spark 2.x中不再需要
  • spark-csv,即使它是Spark 2.1默认使用Scala 2.11。更不用说1.0.3非常老了(比如Spark 1.3左右)。