代码之家  ›  专栏  ›  技术社区  ›  Kermit

jvm在分布式/并行处理中是否会产生很大的开销?[关闭]

  •  1
  • Kermit  · 技术社区  · 7 年前

    如果分布式计算框架为运行Java/Scala操作旋转节点,那么它必须在每个容器中包含JVM。例如,每个map和reduce步骤都会生成自己的jvm。

    与为python之类的语言旋转容器相比,这个实例化的效率如何?是毫秒,几秒,30秒的问题吗?在像kubernetes这样需要启动许多容器的框架中,这一成本是否会增加?

    我听说,就像alpine linux只有几MB一样,有精简的jvm,但仍然有一定的成本。然而,scala是spark中的一等公民,mr是用java编写的。

    1 回复  |  直到 7 年前
        1
  •  1
  •   coderanger    7 年前

    Linux容器技术使用分层文件系统,因此更大的容器映像一般不会有大量的运行时开销,尽管您必须在第一次使用该图像时下载该图像,该节点可能会聚集在真正庞大的集群上。一般来说,除了大多数jvm启动有点慢的众所周知的问题外,这通常不是一件值得担心的事情。然而,spark并不像您描述的那样为每个操作都创建一个新容器。它创建一组执行器容器(pod),用于整个spark执行运行。

    推荐文章