2015-08-17 15 views
5

Sto distribuendo un cluster di guardiani che ha 3 nodi. Lo uso per mantenere alta la disponibilità del mio mesos master. Scaricare il tarball zookeeper-3.4.6.tar.gz e decomprimerlo in/opt, rinominarlo in/opt/zookeeper, inserire la directory, modificare conf/zoo.cfg (incollato sotto), creare un file myid in dataDir (che è impostato su/var/lib/zookeeper in zoo.cfg), e avvia lo zookeeper usando ./bin/zkServer.sh start, e va bene. Inizio tutti e 3 i nodi uno per uno e sembrano tutti bene. Io uso ./bin/zkCli.sh per connettere il server, nessun problema.crash del mesos-master con cluster di guardiani

Ma quando avvio mesos (3 master e 3 slave, ogni nodo esegue un master e uno slave), i master si arrestano rapidamente uno dopo l'altro e nella pagina web http://mesos_master:5050, scheda slave, non vengono visualizzati gli slave. Ma quando eseguo solo un zookeeper, questi sono tutti bene. Quindi penso che sia il problema del cluster di guardiani dello zoo.

Ho ottenuto 3 host PV nel mio server Ubuntu. sono tutti con Ubuntu 14.04 LTS: nodo-01, il nodo-02, il nodo-03, devo /etc/hosts in tutti e tre i nodi come questo:

172.16.2.70  node-01 
172.16.2.81  node-02 
172.16.2.80  node-03 

ho installato Zookeeper, mesos su tutti i tre nodi. il file di configurazione Zookeeper è come questo (tutti e tre i nodi):

tickTime=2000 
dataDir=/var/lib/zookeeper 
clientPort=2181 
initLimit=5 
syncLimit=2 
server.1=node-01:2888:3888 
server.2=node-02:2888:3888 
server.3=node-03:2888:3888 

possono essere avviato normalmente e funzionano bene. E poi mi metto al servizio mesos-master, utilizzando la riga di comando ./bin/mesos-master.sh --zk=zk://172.16.2.70:2181,172.16.2.81:2181,172.16.2.80:2181/mesos --work_dir=/var/lib/mesos --quorum=2, e dopo pochi secondi, mi dà errori come questo:

F0817 15:09:19.995256 2250 master.cpp:1253] Recovery failed: Failed to recover registrar: Failed to perform fetch within 1mins 
*** Check failure stack trace: *** 
    @  0x7fa2b8be71a2 google::LogMessage::Fail() 
    @  0x7fa2b8be70ee google::LogMessage::SendToLog() 
    @  0x7fa2b8be6af0 google::LogMessage::Flush() 
    @  0x7fa2b8be9a04 google::LogMessageFatal::~LogMessageFatal() 

▽ 
    @  0x7fa2b81a899a mesos::internal::master::fail() 

▽ 
    @  0x7fa2b8262f8f _ZNSt5_BindIFPFvRKSsS1_EPKcSt12_PlaceholderILi1EEEE6__callIvJS1_EJLm0ELm1EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE 

▽ 
    @  0x7fa2b823fba7 _ZNSt5_BindIFPFvRKSsS1_EPKcSt12_PlaceholderILi1EEEEclIJS1_EvEET0_DpOT_ 
    @  0x7fa2b820f9f3 _ZZNK7process6FutureI7NothingE8onFailedISt5_BindIFPFvRKSsS6_EPKcSt12_PlaceholderILi1EEEEvEERKS2_OT_NS2_6PreferEENUlS6_E_clES6_ 
    @  0x7fa2b826305c _ZNSt17_Function_handlerIFvRKSsEZNK7process6FutureI7NothingE8onFailedISt5_BindIFPFvS1_S1_EPKcSt12_PlaceholderILi1EEEEvEERKS6_OT_NS6_6PreferEEUlS1_E_E9_M_invokeERKSt9_Any_dataS1_ 
    @   0x4a44e7 std::function<>::operator()() 
    @   0x49f3a7 _ZN7process8internal3runISt8functionIFvRKSsEEJS4_EEEvRKSt6vectorIT_SaIS8_EEDpOT0_ 
    @   0x499480 process::Future<>::fail() 
    @  0x7fa2b806b4b4 process::Promise<>::fail() 
    @  0x7fa2b826011b process::internal::thenf<>() 
    @  0x7fa2b82a0757 _ZNSt5_BindIFPFvRKSt8functionIFN7process6FutureI7NothingEERKN5mesos8internal8RegistryEEERKSt10shared_ptrINS1_7PromiseIS3_EEERKNS2_IS7_EEESB_SH_St12_PlaceholderILi1EEEE6__callIvISM_EILm0ELm1ELm2EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE 
    @  0x7fa2b82962d9 std::_Bind<>::operator()<>() 
    @  0x7fa2b827ee89 std::_Function_handler<>::_M_invoke() 
I0817 15:09:20.098639 2248 http.cpp:283] HTTP GET for /master/state.json from 172.16.2.84:54542 with User-Agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36' 
    @  0x7fa2b8296507 std::function<>::operator()() 
    @  0x7fa2b827efaf _ZZNK7process6FutureIN5mesos8internal8RegistryEE5onAnyIRSt8functionIFvRKS4_EEvEES8_OT_NS4_6PreferEENUlS8_E_clES8_ 
    @  0x7fa2b82a07fe _ZNSt17_Function_handlerIFvRKN7process6FutureIN5mesos8internal8RegistryEEEEZNKS5_5onAnyIRSt8functionIS8_EvEES7_OT_NS5_6PreferEEUlS7_E_E9_M_invokeERKSt9_Any_dataS7_ 
    @  0x7fa2b8296507 std::function<>::operator()() 
    @  0x7fa2b82e4419 process::internal::run<>() 
    @  0x7fa2b82da22a process::Future<>::fail() 
    @  0x7fa2b83136b5 std::_Mem_fn<>::operator()<>() 
    @  0x7fa2b830efdf _ZNSt5_BindIFSt7_Mem_fnIMN7process6FutureIN5mesos8internal8RegistryEEEFbRKSsEES6_St12_PlaceholderILi1EEEE6__callIbIS8_EILm0ELm1EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE 
    @  0x7fa2b8307d7f _ZNSt5_BindIFSt7_Mem_fnIMN7process6FutureIN5mesos8internal8RegistryEEEFbRKSsEES6_St12_PlaceholderILi1EEEEclIJS8_EbEET0_DpOT_ 
    @  0x7fa2b82fe431 _ZZNK7process6FutureIN5mesos8internal8RegistryEE8onFailedISt5_BindIFSt7_Mem_fnIMS4_FbRKSsEES4_St12_PlaceholderILi1EEEEbEERKS4_OT_NS4_6PreferEENUlS9_E_clES9_ 
    @  0x7fa2b830f065 _ZNSt17_Function_handlerIFvRKSsEZNK7process6FutureIN5mesos8internal8RegistryEE8onFailedISt5_BindIFSt7_Mem_fnIMS8_FbS1_EES8_St12_PlaceholderILi1EEEEbEERKS8_OT_NS8_6PreferEEUlS1_E_E9_M_invokeERKSt9_Any_dataS1_ 
    @   0x4a44e7 std::function<>::operator()() 
    @   0x49f3a7 _ZN7process8internal3runISt8functionIFvRKSsEEJS4_EEEvRKSt6vectorIT_SaIS8_EEDpOT0_ 
    @  0x7fa2b82da202 process::Future<>::fail() 
    @  0x7fa2b82d2d82 process::Promise<>::fail() 
Aborted 

volte l'avviso è come questo, e poi si è schiantato con la stessa uscita sopra:

0817 15:09:49.745750 2104 recover.cpp:111] Unable to finish the recover protocol in 10secs, retrying 

voglio sapere se Zookeeper viene distribuito e gestito bene nel mio caso, e come posso individuare dove sia il problema. Qualsiasi risposta e suggerimento sono accolti favorevolmente. Grazie.

+0

Hai iniziato il master in tutti i nodi? E potresti usare zkCli.sh connect zk: //172.16.2.70: 2181,172.16.2.81: 2181,172.16.2.80: 2181 successo in ogni nodo? – haosdent

+0

hi @haosdent, ho avviato tutti e tre i master nei tre nodi. Utilizzando zkCli.sh posso connettere qualsiasi server zk. Più tardi ho provato ad avviare solo un nodo zookeeper, nella condizione, non importa se avrò iniziato il multi-master o un master, hanno funzionato tutti bene. Quindi sospetto che sia la configurazione del guardiano dello zoo che fa andare in crash il mesos-master. –

+0

Ho trovato un errore simile qui. https://github.com/mesos/ sincronos/issues/511#issuecomment-129594290 Ha un errore simile nel seguente commento – haosdent

risposta

1

In realtà, nel mio caso, è perché non ho aperto la porta del firewall 5050 per consentire a tre server di comunicare tra loro. Dopo aver aggiornato la regola del firewall, inizia a funzionare come previsto.

-1

Split work_dir tuoi Mesos padroni di diversa dir, non utilizzare una quota work_dir per tutti i padroni, a causa di ZK

1

cado in stesso problema, ho provato diversi modi e diverse opzioni e, infine, l'opzione --ip ha funzionato per me Inizialmente ho usato --hostname opzione

mesos-master --ip=192.168.0.13 --quorum=2 --zk=zk://m1:2181,m2:2181,m3:2181/mesos --work_dir=/opt/mm1 --log_dir=/opt/mm1/logs 
0

È necessario controllare che tutti i Mesos/zookeeper nodi master possono comunicare in modo corretto. Per questo, è necessario: le porte

  • Zookeeper aperta: TCP 2181, 2888, 3888 porta
  • Mesos aperta: TCP 5050
  • ping disponibili (ICMP messaggio 0 e 8)

Se si utilizza FQDN anziché IP nella configurazione, controllare che anche la risoluzione DNS funzioni correttamente.

Problemi correlati