docker - 在单台计算机上以独立模式运行 Spark : is it worth splitting it in masters and workers through docker containers (or another way)?

标签 docker apache-spark kubernetes minikube

我目前只有一台电脑,不会有另一台。

  1. 我在其 CPU 内核上运行 Spark:master=local[5],直接使用它:我设置了 spark-corespark-sql 作为依赖项,完全不做其他配置,我的程序立即启动。这当然很舒服。

  2. 但我是否应该尝试通过 Docker 容器或 minikube(Kubernetes) 在我的电脑上?

将解决方案 #2 - 具有它所需的所有设置 - 以更好的性能奖励我,因为 Spark 真正设计为以这种方式工作,即使在单台计算机上也是如此,

或者我会浪费一些时间,因为我目前运行的模式,不使用网络,不需要数据局部性,总是会给我更好的性能,解决方案#1总是单台计算机上最好的?

我的假设是 #1 没问题。但我对此没有真正的衡量标准。没有比较来源。谁体验过这两种在一台电脑上做事的方式?

最佳答案

这真的取决于您的目标——如果您总是在具有本地主节点的单个节点上运行您的 Spark 代码,那么就使用它。但是,如果您打算在多台机器上以分布式模式运行生成的代码,那么使用 Docker 模拟集群可能会很有用,因为您将使代码以真正的分布式方式运行,并且您将能够发现并非总是如此的问题当您使用本地主机运行代码时会发现。

与其直接使用 Docker(这可能很难设置,尽管仍然可行),也许您可​​以考虑在 Kubernetes 上使用 Spark,例如,通过 minikube - Google 找到了大量关于此主题的文章.

关于docker - 在单台计算机上以独立模式运行 Spark : is it worth splitting it in masters and workers through docker containers (or another way)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63743050/

相关文章:

在 Container-VM 镜像上使用 root 用户登录

docker - 安装错误的Docker卷无法删除

apache-spark - Spark 启动器句柄和监听器未提供状态

java - 在JAVA中的spark流中添加最大值和最小值?

kubernetes - 将 skaffold 配置文件绑定(bind)到命名空间

git - 如何将 Kubernetes 配置存储在与代码相同的存储库中?

ruby - Rails:在任何源中都找不到 concurrent-ruby-1.0.5 (Bundler::GemNotFound)

apache-spark - Spark : How to monitor the memory consumption on Spark cluster?

kubernetes - 如何在kubernetes上部署gitlab-runner并自动注册runner?

mongodb - Docker 磁盘空间用完