Apache Spark应用程序工作流程

时间:2015-06-03 12:40:14

标签: apache-spark workflow

如何组织Spark开发工作流程?

我的方式:

  1. 当地的hadoop /纱服务。
  2. 本地火花服务。
  3. Intellij在一个屏幕上
  4. 运行sbt控制台的终端
  5. 在我更改Spark应用程序代码后,我切换到终端并运行“package”编译为jar和“submitSpark”这是运行spark-submit的stb任务
  6. 在sbt控制台中等待异常:)
  7. 我也尝试过使用spark-shell:

    1. 运行shell并加载以前编写的应用程序。
    2. 在shell中写入行
    3. 评估
    4. 如果可以很好地复制到IDE
    5. 在少量2,3,4之后,将代码粘贴到IDE,编译spark app并重新开始
    6. 有没有办法更快地开发Spark应用程序?

3 个答案:

答案 0 :(得分:4)

我使用交互式环境开发Spark作业的核心逻辑,以实现快速原型设计。为此,我们使用针对开发群集运行的Spark Notebook

一旦我对逻辑进行了原型设计并且它按预期工作,我就在Scala项目中“工业化”代码,使用经典的构建生命周期:创建测试;由Jenkins构建,打包和创建工件。

答案 1 :(得分:1)

我发现编写脚本并使用:load /:copy简化了一些事情,因为我不需要打包任何东西。如果您确实使用了sbt,我建议您启动它并使用~ package,以便在进行更改时自动打包jar。最终当然一切都会在应用程序jar中结束,这是用于原型设计和探索。

  1. Local Spark
  2. 的Vim
  3. 火花壳牌
  4. 的API
  5. 控制台

答案 2 :(得分:1)

我们使用IDE(Intellij开发我们的应用程序,因为我们使用scalaTest对您的Spark应用程序进行编码)进行测试。

在这些测试中,我们使用local [*]作为SparkMaster以便进行调试。

对于集成测试,我们使用了Jenkins,我们以Scala应用程序的形式启动了“端到端”脚本。

我希望这会有用