如何使用 Spark 高效开发?在我编辑代码打包后,spark-submit 太慢了
How do I develop efficiently with Spark? After I edit code and package, spark-submit is too slow
我目前的开发周期是在 IntelliJ 本地编辑代码,使用 sbt ~ package
自动打包成 jar,然后使用 rsync
命令自动复制到集群主节点一个循环。这一切都很可爱和流线型,但是当我 运行 spark-submit
时,我必须等待大约 10 到 20 秒才能开始看到我的代码输出。如果我想不断测试小变化的结果,这是一种极其缓慢的做事方式。
有没有办法重用 JVM、SparkContext 等,这样我就不必等待 spark-submit
从头开始重新启动一切?我正在使用 YARN。
为什么不在本地模式下进行开发,只有在集群上 运行 有更完整的东西可以测试时才这样做?
您可以使用
创建本地 Spark 上下文
val conf = new SparkConf().setMaster("local").setAppName("App")
val sc = new SparkContext(conf)
最后,最好的解决方案是 运行 scala spark shell 并在我从本地计算机连续 rsync
编辑的脚本上使用 :load
。
我目前的开发周期是在 IntelliJ 本地编辑代码,使用 sbt ~ package
自动打包成 jar,然后使用 rsync
命令自动复制到集群主节点一个循环。这一切都很可爱和流线型,但是当我 运行 spark-submit
时,我必须等待大约 10 到 20 秒才能开始看到我的代码输出。如果我想不断测试小变化的结果,这是一种极其缓慢的做事方式。
有没有办法重用 JVM、SparkContext 等,这样我就不必等待 spark-submit
从头开始重新启动一切?我正在使用 YARN。
为什么不在本地模式下进行开发,只有在集群上 运行 有更完整的东西可以测试时才这样做?
您可以使用
创建本地 Spark 上下文val conf = new SparkConf().setMaster("local").setAppName("App")
val sc = new SparkContext(conf)
最后,最好的解决方案是 运行 scala spark shell 并在我从本地计算机连续 rsync
编辑的脚本上使用 :load
。