Ich habe eine Software, die ein Bild und gibt mir einige Ergebnisse für dieses Bild und eine Datenbank, die viele Bilder enthält.Mehrere Aufgabe als eine - Apache Spark
Ich möchte eine verteilte Architektur bauen, um diese Bilder auf mehreren Servern zu verarbeiten, um Zeit zu gewinnen.
Ich habe von Spark gehört und habe danach gesucht, aber ich bin nicht sicher, ob diese Lösung gut für mich ist. Trotzdem möchte ich nichts verpassen. In der Tat, in allen Beispielen, die ich für Spark gefunden habe, es beschäftigt sich immer mit Aufgaben/Jobs, die in kleinere Aufgaben/Jobs aufgeteilt werden können. Zum Beispiel kann ein Text in mehrere kleinere Texte aufgeteilt werden und so kann die Wortanzahl einfach verarbeitet werden. Wenn ich jedoch meine Software benutze, muss ich ein ganzes Bild geben und nicht nur Teile davon.
Also, ist es möglich, Spark eine Aufgabe zu geben, die 10 Bilder enthält (zum Beispiel), und dann teilt Spark es in kleinere Aufgaben (1 Aufgabe = 1 Bild) und sendet jedes Bild an einen Arbeiter? Und wenn es möglich ist, ist das sehr effizient? Ich habe tatsächlich von Sellerie gehört und frage mich, ob diese Art von Lösung für meinen Fall besser ist.
Vielen Dank für Ihre Hilfe! :)
Also, mit Spark, ist es nicht erforderlich, eine Aufgabe zu haben, die sein kann so oft teilen wie wir wollen? Ich meine, Texte können in kleinere Texte aufgeteilt werden, aber in meinem Fall können Bilder nicht. Aufgrund der Tatsache, dass Spark Map und Reduce verwendet, um seine Arbeit zu machen, dachte ich, dass diese Art von Job notwendig war ... In meinem Fall wird zum Beispiel keine Taste mit meinem Bild verbunden sein. Deshalb sind die 'groupBy' oder' filter' Dinge für mich nicht interessant ... – K3r1al
Der Schlüssel könnte der Dateiname oder Pfad sein und der Wert ist void. Dann verarbeitet jede Task eine Datei, indem sie ihren Namen oder Pfad übernimmt und die Binärdateien aus der Datenbank lädt. Das bedeutet, dass bei diesem Ansatz die Binärdateien der Bilder nicht durch den Funken sondern nur durch die Namen verteilt werden müssen. – Klaus
Ok. Ich verstehe. Aber ich denke ich, dass ich in meiner Frage nicht klar genug war. Das tut mir leid. In jedem Beispiel von Spark, sah ich, können die Aufgaben in kleinere Aufgaben aufgeteilt werden. In Wordcount können wir beispielsweise einen Text so oft wie gewünscht in kleinerem Text aufteilen. Das kommt von der Tatsache, dass Spark MapReduce verwendet. Aber in meinem Fall muss ich jede Datei nicht teilen, da die Software, die ich verwende, nur ein ganzes Bild verarbeiten kann. Ein Text -> Split -> mehrere kleinere Texte. Ein Bild -> Split -> nichts interessantes. So kann nur ein Arbeiter mit einer Datei in meinem Fall umgehen. Ist Spark noch interessant? – K3r1al