Ich habe zwei Spark-Streaming-Jobs, die ich ausführen möchte, sowie einige verfügbare Ressourcen für Batch-Jobs und andere Operationen.Spark on Mesos - Ausführen mehrerer Streaming-Jobs
Ich habe Spark Standalone-Cluster-Manager ausgewertet, aber ich erkannte, dass ich die Ressourcen für zwei Jobs reparieren müsste, die fast keine Rechenleistung zu Batch-Jobs verlassen würde.
Ich fing an, Mesos auszuwerten, weil es ein "feinkörniges" Ausführungsmodell hat, wo Ressourcen zwischen Spark-Anwendungen verschoben werden.
1) Bedeutet es, dass ein einzelner Kern zwischen 2 Streaming Anwendungen verschoben werden kann?
2) Obwohl ich Funken & Cassandra habe, muss ich, um Datenlokalität ausnutzen, dedizierten Kern auf jedem der Slave-Maschinen haben, um Mischen zu vermeiden?
3) Würden Sie Streaming-Jobs im "feinkörnigen" oder "grobkörnigen" Modus empfehlen. Ich weiß, dass die logische Antwort natürlich strukturiert ist (um die Latenz von Streaming-Apps zu minimieren), aber wenn Ressourcen im gesamten Cluster begrenzt sind (Cluster aus 3 Knoten, jeweils 4 Kerne - es gibt 2 Streaming-Anwendungen, die mehrmals ausgeführt werden) Batch-Jobs)
4) In Mesos, wenn ich Funke-Streaming-Job im Cluster-Modus laufen, wird es 1 Kern dauerhaft besetzen (wie Standalone-Cluster-Manager tut), oder wird dieser Kern Treiberprozess ausführen und manchmal als Executor?
Danke
Vielen Dank für Ihre Antwort. Ich habe 2 Kerne auf meiner virtuellen Maschine, und ich führe 1 Job aus, wo ich "funke.cores.max = 1" setze. So kann ich 2 Jobs parallel laufen (mit jeweils 1 Kern). Also was meinst du mit "Ich muss einen Kern für jeden Stream Reader haben"? –
Soweit ich weiß, weist mesos keine Aufgaben zu, sondern [cpu shares] (https://books.google.de/books?).id = NLElCwAAQBAJ & pg = PT22 & LPG = PT22 & dq = mesos + cgroups + Isolation + cpu + share & source = bl & OTS = W5gfVk8WKk & sig = dovSio2jcjFCoNwch9wyEQ1G78s & hl = en & sa = X & ved = 0ahUKEwi5jpOh8MTMAhVoKcAKHeViBEcQ6AEIRjAF # v = OnePage & q = mesos% 20cgroups% 20isolation% 20cpu% 20 Aktien & f = false): * .. .Mesos-Slaves verwenden CPU-Shares, anstatt bestimmte CPUs * zu reservieren. Außerdem, siehe [diesen Link] (https://theza.ch/2014/09/17/cpu-resources-in-docker-mesos-and-marathon/) – Tobi
Ich glaube, der Punkt über Mesos und Bruchteile eines Kerns ist Korrekt, eigentlich, aber Sie haben immer noch das Problem, dass jeder Spark-Streaming-Job mindestens zwei Kerne benötigt, einen pro Stream, der an den Reader angeheftet ist, und den anderen für die allgemeine Verarbeitung. Wenn Sie also zwei Streaming-Jobs ausführen, verbrauchen Sie beide Kerne für die Leser allein. –