Skip to content
This repository has been archived by the owner on Jun 16, 2023. It is now read-only.

关于双网络(多网络)环境下jstorm的配置

youngcle edited this page Jul 18, 2016 · 4 revisions

出于管理、安全、性能等因素,生产系统中经常会配置双网络(或多网络)。 常见的是把管理网和数据网分开部署。

举例来讲一套系统中,10个节点,每个节点上配置一个千兆网、一个万兆网 分别是192.168.1.xxx 和192.168.2.xxx 如何让jstorm 按照我们希望的方式,传输tuple呢? 配置文件中没有显式、单独的设置。可以采用如下方法配置: 1、在个机器上配置好/etc/hosts或DNS,例如/etc/hosts:

192.168.1.1 workernode01
192.168.1.2 workernode02
………
192.168.1.10 workernode10

192.168.2.1 workernode01-10g
192.168.2.2 workernode02-10g
……
192.168.2.10 workernode10-10g

2、jstorm的supervisor启动时,会将采集本机的hostname,注册nimbus中,后面通信也都用hostname 去进行节点间通信, 因此hostname 对应的网络是进行设置的关键。例如: nimbus和zookeeper在workernode01上 我们希望tuple走万兆网,zookeeper\nimbus走千兆网 那么我们可以在storm.yaml中设置

storm.zookeeper.servers:
  - "workernode01"
nimbus.host: "192.168.1.1"

这样jstorm管理信息走千兆网。

将每个supervisor所在节点的hostname设置为与/etc/hosts (或DNS)中对应万兆网段的主机名。 例如: 节点1上:

/etc/hostname
    workernode01-10g

…… 节点10上

/etc/hostname
    workernode10-10g

这样,再启动supervisor

jstorm list时就可以看到supervisor都是workernode1-10g……workernode10-10g UI中也可以一目了然。

观察日志也可以发现节点间通信都是绑定的xxx-10g:xxx端口,从而实现了tuple走万兆网。

by yanghl

Clone this wiki locally