2015-08-17 6 views
5

Ich stelle einen Tierpfleger-Cluster mit 3 Knoten bereit. Ich benutze es, um meinen Mesos Master hochverfügbar zu halten. Ich lade den zookeeper-3.4.6.tar.gz-Tarball herunter und dekomprimiere ihn nach/opt, benenne ihn in/opt/zoekeeper um, öffne das Verzeichnis, bearbeite die conf/zoo.cfg (unten eingefügt), erstelle eine myid-Datei in dataDir (die auf/var/lib/zookeeper in zoo.cfg gesetzt ist), und starten Sie zoekeeper mit ./bin/zkServer.sh Start, und es geht gut. Ich starte alle 3 Knoten nacheinander und sie scheinen alle gut zu sein. Ich benutze ./bin/zkCli.sh, um den Server zu verbinden, kein Problem.Mesos-Master-Absturz mit Tierpfleger-Cluster

Aber wenn ich Mesos starte (3 Master und 3 Slaves, jeder Knoten läuft ein Master und ein Slave), dann stürzte der Master bald nacheinander, und in der Webseite http://mesos_master:5050, Slave-Registerkarte, werden keine Slaves angezeigt. Aber wenn ich nur einen Tierpfleger führe, sind alle in Ordnung. Also ich denke, es ist das Problem des Tierpflegerclusters.

Ich habe 3 PV-Host in meinem Ubuntu-Server. sie sind alle ubuntu 14.04 LTS läuft: Knoten-01, Knoten-02, Knoten-03, I /etc/hosts in allen drei Knoten wie dieses:

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

Ich installierte zookeeper, Mesos auf den alle drei Knoten. Die Zookeeper-Konfigurationsdatei ist wie folgt (alle drei Knoten):

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 

Sie können normal gestartet werden und laufen gut. Und dann fange ich den Mesos-Master-Dienst, über die Befehlszeile ./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, und nach ein paar Sekunden, es gibt mir Fehler wie folgt aus:

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 

manchmal die Warnung wie diese, und dann abgestürzt mit dem gleichen Ausgang oben:

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

möchte ich wissen, ob zookeeper entfaltet und auch in meinem Fall laufen, und wie kann ich finden, wo das Problem ist. Alle Antworten und Vorschläge sind willkommen. Vielen Dank.

+0

Starten Sie den Master in allen Knoten? Und könnten Sie zkCli.sh verbinden zk: // 172.16.2.70: 2181,172.16.2.81: 2181,172.16.2.80: 2181 Erfolg in jedem Knoten? – haosdent

+0

Hallo @ Haosdent, ich habe alle drei Master in den drei Knoten gestartet. Mit zkCli.sh kann ich einen beliebigen ZK-Server verbinden. Später habe ich versucht, nur einen Tierpfleger-Knoten zu starten, in dem Zustand, egal, ob ich Multi-Master oder einen Master starte, sie alle haben gut funktioniert. Also vermute ich, dass die Konfiguration des Tierpflegers den Mesos-Master zum Absturz bringt. –

+0

Ich habe hier einen ähnlichen Fehler gefunden. https://github.com/mesos/chronos/issues/511#issuecomment-129594290 Er hat ähnlichen Fehler in der folgenden Kommentar – haosdent

Antwort

1

Eigentlich ist es in meinem Fall, weil ich Firewall Port 5050 nicht geöffnet habe, damit drei Server miteinander kommunizieren können. Nach dem Aktualisieren der Firewall-Regel beginnt es wie erwartet zu arbeiten.

-1

Teilen Sie Ihre Mesos Meister work_dir zu verschiedenen dir, keinen Anteil work_dir für alle Master verwenden, wegen zk

1

ich in derselben Ausgabe fallen, habe ich versucht, verschiedene Arten und verschiedene Optionen und schließlich --ip Option hat für mich gearbeitet. Anfangs verwendete ich --hostname Option

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

Sie müssen prüfen, dass alle Mesos/zookeeper Master-Knoten richtig kommunizieren können. Dafür benötigen Sie:

  • Zookeeper Ports offen: TCP 2181, 2888, 3888
  • Mesos Port offen: TCP 5050
  • ping verfügbar (ICMP-Nachricht 0 und 8)

Wenn Verwenden Sie FQDN anstelle von IP in Ihrer Konfiguration, überprüfen Sie, ob die DNS-Auflösung auch korrekt funktioniert.