EINLEITUNGMerging Eingänge in verteilten Anwendung
Ich muss verteilte Anwendung schreiben, die für 3 Datensätze maximale Anzahl von eindeutigen Werten zählt. Ich habe keine Erfahrung in diesem Bereich und kenne keine Rahmenbedingungen. Meine Eingabe konnte sieht wie folgt:
u1: u2,u3,u4,u5,u6
u2: u1,u4,u6,u7,u8
u3: u1,u4,u5,u9
u4: u1,u2,u3,u6
...
Dann beginnt der Ergebnisse sein sollte:
(u1,u2,u3), u4,u5,u6,u7,u8,u9 => count=6
(u1,u2,u4), u3,u5,u6,u7,u8 => count=5
(u1,u3,u4), u2,u5,u6,u9 => count=4
(u2,u3,u4), u1,u5,u6,u7,u8,u9 => count=6
...
Also mein Ansatz ist es, zunächst jede zwei Datensätze zu verschmelzen, und dann verschmelzen jedes fusionierte Paar mit jedem einzelnen Aufzeichnung.
FRAGE
Kann ich eine solche Operation zu tun, wie (merge) auf mehr als einer Eingabereihe auf der gleichen Zeit in framewors wie hadoop/Funkenarbeits? Oder ist mein Ansatz falsch und ich sollte das anders machen?
Jeder Rat wird geschätzt.
'Also mein Ansatz ist es, zunächst jede zwei Datensätze zu verschmelzen, implementieren und dann mit jedem einzelnen record.' jedes fusionierte Paar verschmelzen Dies ist genau das, was eine Reduzierung tut in einem typischen Map Reduce-Framework (z. B. Spark oder Hadoop MR) durch Anwenden einer Zusammenführungsfunktion auf die Werte. –
@Hawknight Von MapReduce Tutorial auf Hadoop-Seite: "Reducer reduziert eine Reihe von Zwischenwerten, die einen Schlüssel zu einer kleineren Gruppe von Werten teilen." Es ist in meinem Fall nicht abgedeckt, weil ich Datensätze nicht wirklich zusammenführen möchte, sondern sie mehr miteinander kombiniere. Habe ich recht? –
Ich bin mir nicht sicher, ob ich richtig verstanden habe, was Sie erreichen möchten, aber letztendlich liegt es an Ihnen zu definieren, wie Ihre Daten verarbeitet werden sollen. Wenn Sie möchten, dass mehrere Zeilen in Ihrer Eingabe gleichzeitig verarbeitet werden, müssen Sie ein eigenes InputFormat definieren, das eine bestimmte Anzahl von Zeilen liest und in Ihre Map-Operation einfügt.Ein häufigerer Anwendungsfall wäre jedoch, die Daten vorzuverarbeiten, um Ihre Zeilen zu kombinieren, und dann eine Stapelreduzierung für Stapel auszuführen. Oder um eine erste Karte zu erstellen, reduzieren Sie den Stapel, um Ihre Daten wie gewünscht zu sortieren und reduzieren Sie dann die Ergebnisse nach Schlüssel. –