【发布时间】:2018-02-21 10:38:29
【问题描述】:
我的问题:我正在开发一个 Spark 扩展,我想在公开更改之前大规模执行测试和性能。目前这样的测试有点过于手动:我编译和打包我的库,将 jar 文件复制到我有私有 Spark 部署的集群,重新启动 Spark,然后手动启动测试和基准测试。每次测试后,我都会手动检查日志和控制台输出。
有更多经验的人能否提供有关如何使其更加自动化的提示?我特别感兴趣:
能够与 Github 和 Jenkins 集成。理想情况下,我只需要将提交推送到 GitHub 存储库,然后 Jenkins 会自动拉取和构建,将新库添加到 Spark 环境,启动 Spark 并触发测试和基准测试,最后收集并提供输出文件。
-
如何运行和管理 Spark 集群。我看到了许多选项:
a) 继续安装单个 Spark:测试框架将更新我的 jar 文件,重新启动 Spark,以便拾取新库,然后运行测试/基准测试。这样做的好处是我只需要设置一次 Spark(也许还有用于共享数据和应用程序二进制文件的 HDFS,作为资源管理器的 YARN 等)。
b) 在容器中运行 Spark:我的集群将运行容器管理系统(如 Kubernetes)。测试框架将创建/更新 Spark 容器映像,启动并配置多个容器以启动 Spark,提交测试/基准并收集结果。这样做的最大优势是多个开发人员可以并行运行测试,并且我可以测试各种版本的 Spark 和 Hadoop。
【问题讨论】:
标签: apache-spark docker jenkins automated-tests automated-deploy