Storm集群资源争用问题及解决方案
1. 调整工作进程(JVM)的内存分配
Storm默认每个工作节点有四个工作进程,分别监听端口6701、6702、6703和6704。在刚开始构建集群时,这个配置通常足够,不用急于确定最佳配置。若要添加端口,需使用如Linux上的netstat工具检查端口是否已被占用。
另外,如果集群中有大量工作节点,更新配置并重启所有节点上的Supervisor进程会很繁琐耗时。推荐使用Puppet(http://puppetlabs.com)等工具自动化部署和配置每个节点。
当遇到工作节点上工作进程内存使用需要增加或减少的争用问题时,可按以下步骤解决:
- 问题 :工作节点上工作进程的内存使用需要调整。
- 解决方案 :在每个工作节点的storm.yaml配置文件的worker.childopts属性中更改分配给所有工作进程(JVM)的内存量。该属性接受任何有效的JVM启动选项,可设置JVM的初始内存分配池(-Xms)和最大内存分配池(-Xmx)。示例如下:
worker.childopts: "...
-Xms512m
-Xmx1024m
..."
更改此属性会更新特定工作节点上的所有工作进程。更新后,需重启工作节点上的Supervisor进程使更改生效。若Storm安装在/opt/storm,可使用以下命令:
/opt/storm/bin storm superv
超级会员免费看
订阅专栏 解锁全文
618

被折叠的 条评论
为什么被折叠?



