小乙shine 2018-10-09 14:23 采纳率: 50%
浏览 1706
已采纳

eclipse写的spark,不打jar包,如何提交到spark集群?

windows平台下,用eclipse每次写好spark代码后都要打jar包,然后发给Linux,然后spark-submit ...,一次下来就一两分钟,我感觉这样太麻烦了,尤其是写一句程序就调试一下的我,这基本不可能,想问问学过spark的前辈们,有没有办法,eclipse写好了spark程序,点下run就能自动提交到集群的?给个思路就行。我知道hadoop的hdfs和MapReduce都能实现这样的自动提交

  • 写回答

3条回答 默认 最新

  • _游侠 2018-10-09 14:47
    关注

    可以本地调试,以本地模式运行。

    首先保证maven项目中的spark的相关以来已经引用:

    org.apache.spark
    spark-core_2.11
    2.3.0

    1、代码中提供有main方法
    2、设置spark的master为local[1]或者local[*]

    3、如果有spark master也可以指定master为 spark://192.168.1.120:7077【此处为你的master节点】
    代码如下:

    import scala.math.random

    import org.apache.spark.sql.SparkSession

    /** Computes an approximation to pi /
    object SparkPi {
    def main(args: Array[String]) {
    val spark = SparkSession
    .builder
    .appName("Spark Pi").master("local[
    ]")
    .getOrCreate()
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
    val count = spark.sparkContext.parallelize(1 until n, slices).map { i =>
    val x = random * 2 - 1
    val y = random * 2 - 1
    if (x*x + y*y <= 1) 1 else 0
    }.reduce(_ + _)
    println(s"Pi is roughly ${4.0 * count / (n - 1)}")
    spark.stop()
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?