风暴群中的工作者配置

时间:2014-01-03 23:31:19

标签: apache-storm

我对工作流程的配置有疑问。

我已经了解工作进程在一个工作节点(一台机器)内运行。我想知道的是,如果所有工作进程共享相同的JVM,或者每个工作进程是否都有自己的JVM实例?如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置在哪里完成?

4 个答案:

答案 0 :(得分:4)

每个风暴工作进程都在自己的JVM中运行。 可以在conf / storm.yaml配置文件中完成对每个worker的内存分配。 对于Ex:添加/编辑以下参数,为每个工作进程分配1GB RAM:

worker.childopts: "-Xmx1024m"

这将覆盖您在计算机上执行的所有JVM RAM设置(例如使用JAVA_TOOL_OPTIONS)

有关更多风暴配置,请参阅: Storm Configurations

答案 1 :(得分:2)

  • 工作进程执行拓扑的子集,并在其自己的JVM中运行。
  • 工作进程属于特定拓扑,可以为此拓扑的一个或多个组件(spout或bolt)运行一个或多个执行程序。
  • 执行程序是由工作进程生成并在工作程序的JVM中运行的线程。
  • 执行程序可以为同一组件(喷口或螺栓)运行一个或多个任务。
  • 执行程序总是有一个用于其所有任务的线程,这意味着任务在执行程序上串行运行。

因此可以说所有工作进程都将运行在仅属于特定工作节点的同一JVM上。

答案 2 :(得分:2)

在storm.yaml中配置worker.childopts =“ - Xmx4048m”。

如果可用,每个工作进程将从RAM中获取大量内存。

答案 3 :(得分:0)

每个工作节点在其自己的JVM上独立运行。但是他们可以为一个或多个拓扑运行一个或多个工作进程。

  

如果后者是真的,那么我想应该设置每个进程必须使用多少内存!那么这个配置将在哪里完成?

如果您打算设置JVM参数,请按照讨论here

进行操作