我对工作流程的配置有疑问。
我已经了解工作进程在一个工作节点(一台机器)内运行。我想知道的是,如果所有工作进程共享相同的JVM,或者每个工作进程是否都有自己的JVM实例?如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置在哪里完成?
答案 0 :(得分:4)
每个风暴工作进程都在自己的JVM中运行。 可以在conf / storm.yaml配置文件中完成对每个worker的内存分配。 对于Ex:添加/编辑以下参数,为每个工作进程分配1GB RAM:
worker.childopts: "-Xmx1024m"
这将覆盖您在计算机上执行的所有JVM RAM设置(例如使用JAVA_TOOL_OPTIONS)
有关更多风暴配置,请参阅: Storm Configurations
答案 1 :(得分:2)
因此可以说所有工作进程都将运行在仅属于特定工作节点的同一JVM上。
答案 2 :(得分:2)
在storm.yaml中配置worker.childopts =“ - Xmx4048m”。
如果可用,每个工作进程将从RAM中获取大量内存。
答案 3 :(得分:0)
每个工作节点在其自己的JVM上独立运行。但是他们可以为一个或多个拓扑运行一个或多个工作进程。
如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置将在哪里完成?
如果您打算设置JVM参数,请按照讨论here
进行操作