【问题标题】:Can Spark code be run on cluster without spark-submit?Spark 代码可以在没有 spark-submit 的情况下在集群上运行吗?
【发布时间】:2017-05-28 21:45:47
【问题描述】:

我想开发一个 Scala 应用程序,它连接一个主节点并运行一段 spark 代码。我想在不使用 spark-submit 的情况下实现这一点。这可能吗?特别是我想知道以下代码是否可以从我的机器上运行并连接到集群:

val conf = new SparkConf()
  .setAppName("Meisam")
  .setMaster("yarn-client")

val sc = new SparkContext(conf)

val sqlContext = new SQLContext(sc)
val df = sqlContext.sql("SELECT * FROM myTable")

...

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    添加一个配置

    val conf = new SparkConf() .setAppName("Meisam") .setMaster("yarn-client") .set("spark.driver.host", "127.0.0.1");

    【讨论】:

    • 这不是作者问的。他要求的方法不涉及调用 ./spark-submit program --class etcetc...
    • 当你添加这个 conf .set("spark.driver.host", "your master host ip here") 你可以在 ide (eg eclipse) 中运行你的驱动程序
    • 如果你编辑你的答案,我会投票赞成 - 我错了。对不起。
    【解决方案2】:

    是的,这是可能的,基本上你所做的就是让任务在客户端部署模式下在 YARN 集群上运行(驱动程序在运行应用程序的机器上运行)。

    spark-submit 可帮助您让您的代码免于像主 URL 一样正确执行所需的少量 SparkConf 设置。如果您的代码没有底层细节,您可以在任何 Spark 集群(YARN、Mesos、Spark Standalone 和本地)上部署您的 Spark 应用程序,而无需重新编译它们。

    【讨论】:

      【解决方案3】:

      与这里所说的相反,我认为这只是部分可能,因为我最近发现了一条艰难的道路,我是 Spark 新手。虽然您绝对可以如上所述连接到集群并在其上运行代码,但当您开始做任何不平凡的事情时,您可能会遇到问题,甚至像使用 UDF(用户定义函数,AKA 任何尚未包含在火花)。看看这里https://issues.apache.org/jira/browse/SPARK-18075,以及其他相关票证,最重要的是,查看回复。 此外,这似乎很有用(现在看看):Submitting spark app as a yarn job from Eclipse and Spark Context

      【讨论】:

        猜你喜欢
        • 2019-03-16
        • 2015-11-08
        • 1970-01-01
        • 2019-01-14
        • 1970-01-01
        • 2016-07-20
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        相关资源
        最近更新 更多