2015-05-29 10 views
6

Sto seguendo http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html & http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html#sc_zkMulitServerSetup per impostare il cluster Apache Storm in Ubuntu 14.04 LTS in AWS EC2.Come configurare il cluster Apache Storm multi-nodo

Il mio nodo principale è 10.0.0.185. I miei nodi slave sono 10.0.0.79, 10.0.0.124 & 10.0.0.84 con myid di 1, 2 e 3 rispettivamente nei rispettivi dati di guardiano. Ho creato un insieme di Apache Zookeeper costituito da tutti e 3 i nodi slave.

Qui di seguito sono i miei zoo.cfg per i miei nodi schiavo:

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 

Qui di seguito sono i miei storm.yaml per i miei schiavi nodi:

########### 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" 

sotto ci sono le storm.yaml per il mio master :

########### 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" 

Inizio il mio zookeeper in tutti i miei nodi slave, quindi avvio il mio nimbus tempesta nel mio nodo principale, quindi avvio supervisore tempesta in tutti i miei nodi slave. Tuttavia, quando visualizzo nell'interfaccia utente di Storm, solo 1 supervisore con 5 slot totali nel riepilogo del cluster & solo 1 informazioni di supervisore nel riepilogo supervisore, perché?

Quanti nodi slave funzionano effettivamente se si invia una topologia in questo caso?

Perché non ci sono 3 supervisori con un totale di 15 slot?

Cosa devo fare per avere 3 supervisori?

Quando controllo nel supervisor.log nei nodi slave, le cause è come qui sotto:

2015-05-29T09:21:24.185+0000 b.s.d.supervisor [INFO] 5019754f-cae1-4000-beb4-fa0 
16bd1a43d still hasn't started 
+0

Vedere registri supervisore non riusciti sui problemi di connessione – shutty

+0

Aggiunti i registri supervisore. Sembra che solo 1 supervisore verrà avviato allo stesso tempo, altri non verranno avviati, anche se invio il comando "Supervisore tempesta". – Toshihiko

risposta

5

Quello che stai facendo è perfetto e funziona anche.

L'unica cosa che dovresti cambiare è il tuo storm.dir. È lo stesso nello slave e i nodi master cambiano semplicemente il percorso nel percorso storm.dir nei nodi supervisore nimbus & (non utilizzare lo stesso percorso locale). Quando si utilizza lo stesso percorso locale, il nimbus e il supervisore condividono lo stesso id. Entrano in gioco ma non vedi 8 slot che ti mostrano solo 4 slot come lavoratori.

Modificare il (storm.local.dir:/home/ubuntu/storm/data) e non utilizzare lo stesso percorso in supervisor e nimbus.

+0

Grazie per il vostro aiuto, tuttavia, il problema persiste anche se cambio il storm.local.dir:/home/ubuntu/storm/data nel storm.yaml del nodo nimbus a/home/ubuntu/storm/data2, nel frattempo rimangono storm.local.dir:/home/ubuntu/storm/data nel storm.yaml del nodo slave. – Toshihiko

+0

Quando si esegue il ribilanciamento della tempesta, invece di consentire al nuovo slave di funzionare insieme al nodo precedente, il nuovo nodo slave sostituisce il nodo precedente per eseguire – Toshihiko

+2

okay !! posso sapere quanti nodi supervisore stai facendo !! la dir del percorso nel supervisore è cambiata o usa lo stesso percorso in tutti i nodi supervisori? se il tuo stesso percorso locale in supervisori cambia percorso.ex nel nodo supervisore 1 storm.local.dir:/home/ubuntu/storm/data e nel nodo supervisore 2 storm.local.dir: /home/ubuntu/storm/data2.they dovrebbe differire! se non funziona controlla i log del nodo precedente dopo la sostituzione. –

0

Si riferisce al Nimbus come nodo master?

Generalmente, il cluster di Zookeeper deve essere avviato prima, quindi nimbus e quindi i supervisori. Zookeeper e Nimbus dovrebbero essere sempre disponibili affinché il cluster Storm funzioni correttamente.

Controllare i registri del supervisore per verificare i guasti. L'host Nimbus e le macchine Zookeeper devono essere accessibili dalle macchine Supervisor.

+0

Sì, avvio innanzitutto il cluster Zookeeper, quindi avvio il tempesta Nimbus, quindi avvio il supervisore tempesta. Inserisco erroneamente la domanda che ho posto. Modificato la mia domanda. – Toshihiko

Problemi correlati