Apache Spark 应用工作流程
Apache Spark app workflow
您如何组织 Spark 开发工作流程?
我的方式:
- 本地 hadoop/yarn 服务。
- 本地火花服务。
- 一个屏幕上的 Intellij
- 带 运行ning sbt 控制台的终端
- 更改 Spark 应用程序代码后,我切换到终端并 运行 "package" 编译为 jar 和 "submitSpark" 这是 运行s spark- 的 stb 任务提交
- 在 sbt 控制台中等待异常 :)
我也尝试使用 spark-shell:
- 运行 shell 并加载之前编写的应用程序。
- 在shell
中写一行
- 评价一下
- 如果没问题复制到IDE
- 经过2、3、4之后,粘贴代码到IDE,编译spark app并重新启动
有什么方法可以更快地开发 Spark 应用程序?
我发现编写脚本和使用 :load / :copy 简化了一些事情,因为我不需要打包任何东西。如果您确实使用 sbt,我建议您启动它并使用 ~ package
,以便它在进行更改时自动打包 jar。当然,最终一切都会在一个应用程序 jar 中结束,这是为了原型设计和探索。
- 本地火花
- Vim
- 火花-Shell
- API
- 控制台
我们使用 IDE(Intellij,因为我们在 Scala 中编写您的 spark 应用程序代码)开发我们的应用程序,并使用 scalaTest 进行测试。
在这些测试中,我们使用 local[*] 作为 SparkMaster 以允许调试。
对于集成测试,我们使用了 Jenkins 并启动了一个 "end to end" 脚本作为 Scala 应用程序。
希望有用
我使用交互式环境开发 Spark 作业的核心逻辑以进行快速原型制作。为此,我们针对开发集群使用 Spark Notebook 运行。
一旦我制作了逻辑原型并且它按预期工作,我 "industrialize" Scala 项目中的代码,具有经典的构建生命周期:创建测试;由 Jenkins 构建、打包和创建工件。
您如何组织 Spark 开发工作流程?
我的方式:
- 本地 hadoop/yarn 服务。
- 本地火花服务。
- 一个屏幕上的 Intellij
- 带 运行ning sbt 控制台的终端
- 更改 Spark 应用程序代码后,我切换到终端并 运行 "package" 编译为 jar 和 "submitSpark" 这是 运行s spark- 的 stb 任务提交
- 在 sbt 控制台中等待异常 :)
我也尝试使用 spark-shell:
- 运行 shell 并加载之前编写的应用程序。
- 在shell 中写一行
- 评价一下
- 如果没问题复制到IDE
- 经过2、3、4之后,粘贴代码到IDE,编译spark app并重新启动
有什么方法可以更快地开发 Spark 应用程序?
我发现编写脚本和使用 :load / :copy 简化了一些事情,因为我不需要打包任何东西。如果您确实使用 sbt,我建议您启动它并使用 ~ package
,以便它在进行更改时自动打包 jar。当然,最终一切都会在一个应用程序 jar 中结束,这是为了原型设计和探索。
- 本地火花
- Vim
- 火花-Shell
- API
- 控制台
我们使用 IDE(Intellij,因为我们在 Scala 中编写您的 spark 应用程序代码)开发我们的应用程序,并使用 scalaTest 进行测试。
在这些测试中,我们使用 local[*] 作为 SparkMaster 以允许调试。
对于集成测试,我们使用了 Jenkins 并启动了一个 "end to end" 脚本作为 Scala 应用程序。
希望有用
我使用交互式环境开发 Spark 作业的核心逻辑以进行快速原型制作。为此,我们针对开发集群使用 Spark Notebook 运行。
一旦我制作了逻辑原型并且它按预期工作,我 "industrialize" Scala 项目中的代码,具有经典的构建生命周期:创建测试;由 Jenkins 构建、打包和创建工件。