如何配置多节点Apache Storm集群

Tos*_*iko 6 apache-storm apache-zookeeper

我下面http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html&http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup设置Apache风暴在AWS EC2中的Ubuntu 14.04 LTS中的集群.

我的主节点是10.0.0.185.我的slave节点分别为10.0.0.79,10.0.0.124和10.0.0.84,其myid分别为1,2和3.我建立了一个由Apache Zookeeper组成的所有3个从属节点.

下面是我的slave.cfg我的slave节点:

tickTime=2000
initLimit=10
syncLimit=5

dataDir=/home/ubuntu/zookeeper-data
clientPort=2181

server.1=10.0.0.79:2888:3888
server.2=10.0.0.124:2888:3888
server.3=10.0.0.84:2888:3888

autopurge.snapRetainCount=3
autopurge.purgeInterval=1
Run Code Online (Sandbox Code Playgroud)

下面是我对我的slave节点的storm.yaml :

########### These MUST be filled in for a storm configuration
 storm.zookeeper.server:
     - "10.0.0.79"
     - "10.0.0.124"
     - "10.0.0.84"
#     - "localhost"
 storm.zookeeper.port: 2181

# nimbus.host: "localhost"
 nimbus.host: "10.0.0.185"

 storm.local.dir: "/home/ubuntu/storm/data"
 java.library.path: "/usr/lib/jvm/java-7-oracle"

 supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703
     - 6704
#
# worker.childopts: "-Xmx768m"
# nimbus.childopts: "-Xmx512m"
# supervisor.childopts: "-Xmx256m"
#
# ##### These may optionally be filled in:
#
## List of custom serializations
# topology.kryo.register:
#     - org.mycompany.MyType
#     - org.mycompany.MyType2: org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
#     - org.mycompany.MyDecorator
#
## Locations of the drpc servers
# drpc.servers:
#     - "server1"
#     - "server2"

## Metrics Consumers
# topology.metrics.consumer.register:
#   - class: "backtype.storm.metric.LoggingMetricsConsumer"
#     parallelism.hint: 1
#   - class: "org.mycompany.MyMetricsConsumer"
#     parallelism.hint: 1
#     argument:
#       - endpoint: "metrics-collector.mycompany.org"
Run Code Online (Sandbox Code Playgroud)

以下是我的节点的storm.yaml :

########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers:
     - "10.0.0.79"
     - "10.0.0.124"
     - "10.0.0.84"
#     - "localhost"
#
 storm.zookeeper.port: 2181

 nimbus.host: "10.0.0.185"
# nimbus.thrift.port: 6627
# nimbus.task.launch.secs: 240

# supervisor.worker.start.timeout.secs: 240
# supervisor.worker.timeout.secs: 240

 ui.port: 8772

#  nimbus.childopts: "?Xmx1024m ?Djava.net.preferIPv4Stack=true"

#  ui.childopts: "?Xmx768m ?Djava.net.preferIPv4Stack=true"
#  supervisor.childopts: "?Djava.net.preferIPv4Stack=true"
#  worker.childopts: "?Xmx768m ?Djava.net.preferIPv4Stack=true"

 storm.local.dir: "/home/ubuntu/storm/data"

 java.library.path: "/usr/lib/jvm/java-7-oracle"

# supervisor.slots.ports:
#     - 6700
#     - 6701
#     - 6702
#     - 6703
#     - 6704

# worker.childopts: "-Xmx768m"
# nimbus.childopts: "-Xmx512m"
# supervisor.childopts: "-Xmx256m"

# ##### These may optionally be filled in:
#
## List of custom serializations
# topology.kryo.register:
#     - org.mycompany.MyType
#     - org.mycompany.MyType2: org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
#     - org.mycompany.MyDecorator
#
## Locations of the drpc servers
# drpc.servers:
#     - "server1"
#     - "server2"

## Metrics Consumers
# topology.metrics.consumer.register:
#   - class: "backtype.storm.metric.LoggingMetricsConsumer"
#     parallelism.hint: 1
#   - class: "org.mycompany.MyMetricsConsumer"
#     parallelism.hint: 1
#     argument:
#       - endpoint: "metrics-collector.mycompany.org"
Run Code Online (Sandbox Code Playgroud)

我在所有从属节点中启动我的zookeeper,然后在我的主节点中启动我的风暴雨云,然后在所有从属节点中启动风暴监控器.但是,当我在我的Storm UI中查看时,在集群摘要中只有1个主管共有5个插槽,而在主管摘要中只有1个主管信息,为什么会这样?

如果我在这种情况下提交拓扑,实际有多少个从节点正在工作?

为什么不是3个总共15个插槽的主管?

我应该怎么办才能有3名主管?

当我检查从属节点中的supervisor.log时,原因如下:

2015-05-29T09:21:24.185+0000 b.s.d.supervisor [INFO] 5019754f-cae1-4000-beb4-fa0
16bd1a43d still hasn't started
Run Code Online (Sandbox Code Playgroud)

Dil*_*bby 5

你做得很完美,也做得很好.

你唯一应该改变的是你的storm.dir.从站和主节点都是一样的,只是改变了storm.dirnimbus和supervisor节点中路径的路径(不要使用相同的本地路径).当您使用相同的本地路径时,nimbus和supervisor共享相同的id.他们发挥作用,但你没有看到8个插槽,他们只是向你展示4个插槽作为工人.

更改(storm.local.dir:/home/ubuntu/storm/data)并且不要在supervisor和nimbus中使用相同的路径.

  • 好的 !!我可以知道你运行了多少个管理节点!管理程序中的路径目录是否在所有管理程序节点中更改或使用相同路径?如果您在管理程序中运行相同的本地路径更改它.主管1节点中的路径为storm.local.dir:/ home/ubuntu/storm/data和在主管2节点storm.local.dir:/home/ubuntu/storm/data2.they应该有所不同!如果不起作用,请在更换后检查上一节点的日志. (2认同)