DE112011101109B4 - Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems - Google Patents
Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems Download PDFInfo
- Publication number
- DE112011101109B4 DE112011101109B4 DE112011101109.1T DE112011101109T DE112011101109B4 DE 112011101109 B4 DE112011101109 B4 DE 112011101109B4 DE 112011101109 T DE112011101109 T DE 112011101109T DE 112011101109 B4 DE112011101109 B4 DE 112011101109B4
- Authority
- DE
- Germany
- Prior art keywords
- map task
- task
- outputs
- map
- tracker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- Technisches Gebiet
- Die Erfindung betrifft ein Verfahren und ein System für MapReduce-(Zuordnungs/Reduzierungs-) Datenübertragung (MapReduce data transmission) in einem Rechenzentrum mit einem Speichernetzwerk.
- Hintergrund
- „MapReduce“ stellt ein von Google vorgeschlagenes Software-Rahmenwerk für das parallele Bearbeiten großer Datensätze (größer als 1 TB) dar. Die Konzepte von „Map“ und „Reduce“ sowie deren Hauptideen sind funktionalen Programmiersprachen entliehen. Bei derzeitigen „MapReduce“-Middleware-Realisierungen müssen Anwendungsentwickler eine Map-Funktion definieren, um einen Satz von Schlüssel-Wert-Paaren neuen Schlüssel-Wert-Paaren zuzuordnen, die als Zwischen-Schlüssel-Wert-Paare bezeichnet werden, und Anwendungsentwickler müssen zudem eine Reduce-Funktion spezifizieren, um die von der Map-Funktion ausgegebenen Zwischen-Schlüssel-Wert-Paare weiterzuverarbeiten. Das Aufrufen von „Map“ partitioniert die Eingangsdaten automatisch in M Eingangsdatenteile, die zur parallelen Verarbeitung an mehrere Maschinen geleitet werden können. Das Aufrufen von „Reduce“ partitioniert die Zwischen-Schlüssel durch eine Partitionierungsfunktion in R Teile (zum Beispiel hash (Schlüssel) mod R), die ebenfalls an mehrere Maschinen geleitet werden.
- Die Anzahl der Partitionierungen R und die Partitionierungsfunktion können durch den Benutzer festgelegt werden. MapReduce erreicht Skalierbarkeit durch das Verteilen umfangreicher Operationen an Datensätzen auf mehrere Knoten auf dem Netzwerk.
- Derzeit wird MapReduce als wichtige Programmentwicklungsspezifikation zum Aufbau eines Rechenzentrums angesehen und besitzt bereits ein großes Spektrum von Anwendungen, zu denen typischerweise folgende zählen: verteiltes „grep“, verteiltes Sortieren, Analyse von Webzugangsprotokollen, umgekehrter Indexaufbau, Dokumenten-Clustering, maschinelles Lernen, auf Statistiken beruhende Maschinenübersetzung und so weiter. Um die Anforderungen an die Verarbeitung/Erstellung großer Datenmengen mit MapReduce zu erfüllen, besteht ein Bedarf nach dem Aufbau einer zugrundeliegenden Netzwerkarchitektur, in der MapReduce angewandt wird, zum Beispiel eine neue Art von Rechenzentrum, in welchem die konvergierte Netzwerkarchitektur verwendet wird. Für ein herkömmliches Rechenzentrum wird der Neuaufbau einer zugrundeliegenden Netzwerkarchitektur, in der MapReduce angewandt wird, jedoch viel Geld kosten.
1 zeigt eine schematische Abbildung einer Netzwerkarchitektur eines herkömmlichen Rechenzentrums mit einem Speichernetzwerk, wobei sich die Netzwerktopologie des herkömmlichen Rechenzentrums üblicherweise aus zwei Netzwerken zusammensetzt: einem Nahbereichsnetzwerk (local area network (LAN)) und einem Speichernetzwerk (storage network (SAN)). Bei einem SAN handelt es sich um ein dediziertes Hochleistungsnetzwerk zum Übertragen von Daten zwischen verschiedenen Servern und Speicher-Ressourcen, bei dem Kollisionsprobleme beim Datenverkehr vermieden werden, die üblicherweise zwischen Clients und Servern in einem herkömmlichen Nachrichtennetzwerk (wie beispielsweise einem üblicherweise bei einem LAN verwendeten TCP/IP-Netzwerk) auftreten.2 zeigt eine schematische Abbildung der MapReduce-Datenübertragung in einem herkömmlichen Rechenzentrum mit einem Speichernetzwerk gemäß dem Stand der Technik. Da die derzeitige MapReduce-Middleware die Ausgaben einer Map-Aufgabe (Map task) durch das HTTP-Anwendungsschichtprotokoll (HTTP application layer protocol) zu einer Reduce-Aufgabe (Reduce task) überträgt, besteht ein Bedarf nach der Verwendung des TCP/IP-Protokollstapels. In diesem Fall können die Ausgaben der Map-Aufgabe nur durch das leistungsschwache LAN-Netzwerk zur Reduce-Aufgabe übertragen werden, was zu einer ineffizienten Verarbeitung von MapReduce-Daten-Jobs führt. - Daher besteht ein Bedarf nach einem Verfahren zum Verbessern der Effizienz der MapReduce-Datenübertragung, ohne die Hardware-Architektur des herkömmlichen Rechenzentrums verändern zu müssen.
- Zusammenfassung
- Auf der Grundlage der vorstehend genannten Probleme stellt die vorliegende Erfindung ein Verfahren und ein System für die Übertragung von MapReduce-Daten in einem Rechenzentrum mit einem Speichernetzwerk bereit, wie in den angehängten Ansprüchen definiert.
- Bei dem Verfahren und dem System gemäß der vorliegenden Erfindung werden die Ausgaben der Map-Aufgabe direkt vom Speichernetzwerk gelesen, wobei die Netzwerkbandbreite des Speichernetzwerks ausreichend genutzt wird und die Leistungsvorteile der Architektur mit doppeltem Netzwerk des herkömmlichen Rechenzentrums unter der Bedingung, dass die Hardware-Architektur des herkömmlichen Rechenzentrums beibehalten wird, vollständig ausgeschöpft werden.
- Figurenliste
- Nachfolgend werden in beispielhafter Weise Ausführungsformen der Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
-
1 eine schematische Abbildung der Netzwerkarchitektur eines herkömmlichen Rechenzentrums mit einem Speichernetzwerk zeigt; -
2 eine schematische Abbildung der MapReduce-Datenübertragung in einem herkömmlichen Rechenzentrum mit einem Speichernetzwerk gemäß dem Stand der Technik zeigt; -
3 eine schematische Abbildung der MapReduce-Datenübertragung in einem herkömmlichen Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der vorliegenden Erfindung zeigt; -
4 ein Verfahren der MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der vorliegenden Erfindung zeigt; -
5 einen Ablaufplan eines Verfahrens zum Durchführen einer Map-Aufgabe durch einen Map-Aufgaben-Verfolger (Map Task Tracker) gemäß einer Ausführungsform der Erfindung zeigt; -
6 einen Ablaufplan eines Verfahrens zum Durchführen einer Reduce-Aufgabe durch einen Reduce-Aufgaben-Verfolger (Reduce Task Tracker) gemäß einer Ausführungsform der Erfindung; und -
7 ein Blockschaltbild eines Systems der MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. - Detaillierte Beschreibung
- Die Aufgaben und Vorteile der Erfindung werden anhand der folgenden detaillierten Beschreibung des Verfahrens und des Systems für die MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk (SAN) in Verbindung mit den Zeichnungen gemäß Ausführungsformen der Erfindung verständlicher.
- Bei MapReduce handelt es sich um ein Rahmenwerk zur Bearbeitung bestimmter Arten verteilbarer Probleme mithilfe einer großen Zahl von Computern (Knoten), was gemeinhin als Cluster bezeichnet wird. Computerverarbeitung kann an Daten erfolgen, die entweder in einem Dateisystem (unstrukturiert) oder innerhalb einer Datenbank (strukturiert) gespeichert sein können.
- „Map“-Schritt: Der Master-Knoten nimmt die Eingaben, zerteilt sie in kleiner Teilprobleme und verteilt diese auf Arbeitsknoten. Ein Arbeitsknoten kann dies wiederum erneut tun, was zu einer Baumstruktur mit mehreren Ebenen führt.
- Der Arbeitsknoten verarbeitet dieses kleinere Problem und leitet die Antwort an seinen Master-Knoten zurück.
- „Reduce“-Schritt: Der Master-Knoten nimmt dann die Antworten auf alle Teilprobleme und kombiniert sie in einer Weise, die dazu dient, die Ausgabe zu erhalten - die Antwort auf das Problem, das es ursprünglich zu lösen versucht hat.
- Der Vorteil von MapReduce liegt darin, dass es die verteilte Verarbeitung der Zuordnungs- und der Reduzierungs-Operationen erlaubt. Vorausgesetzt, dass jede Zuordnungsoperation unabhängig von der anderen ist, können alle Zuordnungen parallel ausgeführt werden - obwohl dies in der Praxis durch die Datenquelle und/oder die Anzahl von CPUs in der Nähe dieser Daten eingeschränkt wird. Gleichermaßen kann ein Satz von „Reduzierern“ (reducers) die Reduzierungsphase durchführen - hierfür ist lediglich erforderlich, dass alle Ausgaben der Map-Operation, die denselben gemeinsamen Schlüssel aufweisen, zur selben Zeit demselben Reduzierer vorgelegt werden. Obwohl dieser Prozess verglichen mit sequenzielleren Algorithmen ineffizient scheinen mag, kann MapReduce auf erheblich größere Datensätze angewandt werden als diejenigen, die „Commodity“-Server bewältigen können - eine große Server-Farm kann mittels MapReduce ein Petabyte an Daten innerhalb nur weniger Stunden sortieren. Die Parallelität bietet zudem Möglichkeiten des Wiederherstellens nach teilweisen Ausfällen von Servern oder der Speicherung während des Vorgangs: Wenn ein Zuordner (mapper) oder Reduzierer ausfällt, kann die Arbeit neu geplant werden - unter der Voraussetzung, dass die Eingangsdaten noch verfügbar sind.
- Obwohl die vorliegende Ausführungsform im Kontext des von Google definierten MapReduce-Rahmenwerks beschrieben wird, ist ersichtlich, dass die vorliegende Erfindung generell bei Techniken zur Bearbeitung verteilbarer Probleme mittels großer Anzahlen von Computern Anwendung findet.
- Zwei der grundlegendsten Dienste eines MapReduce-Rahmenwerks sind ein Job-Verfolger und mehrere Aufgabenverfolger, wobei der Job-Verfolger auf einem Master-Knoten bereitgestellt wird, um von Benutzern übermittelte Jobs zu empfangen, alle Jobs vereinheitlicht zu planen, alle Aufgabenverfolger zu verwalten, jeden der von den Benutzern übermittelten Jobs in mehrere Aufgaben wie Map- und Reduce-Aufgaben aufzuteilen und für das Zuweisen der Aufgaben an die Aufgabenverfolger verantwortlich zu sein; bei den Aufgaben handelt es sich um grundlegende Einheiten, die spezifisch auszuführen sind und geeigneten Aufgabenverfolgern zur Ausführung zuzuweisen sind; bei den zum Ausführen der Map-Aufgaben zugewiesenen Aufgabenverfolgern handelt es sich um Map-Aufgaben-Verfolger, bei den zum Ausführen der Reduce-Aufgaben zugewiesenen Aufgabenverfolgern handelt es sich um Reduce-Aufgaben-Verfolger, und die Aufgabenverfolger berichten dem Job-Verfolger den Status der Aufgaben während deren Ausführung, um den Job-Verfolger dabei zu unterstützen, Kenntnis über die Job-Ausführung als Ganzes zu erhalten.
-
3 zeigt eine schematische Abbildung der MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der Erfindung. Im Gegensatz zum in2 gezeigten Stand der Technik werden die Map-Aufgaben durch einen Reduce-Aufgaben-Verfolger direkt vom Speichernetzwerk (SAN) gelesen, anstatt über ein Nahbereichsnetzwerk (LAN) an einen Reduce-Aufgaben-Verfolger übermittelt zu werden, so dass die Vorteile der Netzwerkbandbreite des Speichernetzwerks voll ausgeschöpft werden und die Leistungsfähigkeit bei der Datenübertragung gesteigert wird. -
4 zeigt ein Verfahren der MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der vorliegenden Erfindung, wobei das Rechenzentrum mehrere Server beinhaltet, die mit einem Job-Verfolger, einem Map-Aufgaben-Verfolger und einem Reduce-Aufgaben-Verfolger versehen sind, wobei das Verfahren Folgendes umfasst: in SchrittS401 Durchführen der Map-Aufgabe und Erzeugen von Ausgaben der Map-Aufgabe durch den Map-Aufgaben-Verfolger als Reaktion auf ein Empfangen einer durch den Job-Verfolger zugewiesenen Map-Aufgabe; in SchrittS402 Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch den Map-Aufgaben-Verfolger; und in SchrittS403 Lesen der Ausgaben der Map-Aufgabe vom Speichernetzwerk durch den Reduce-Aufgaben-Verfolger als Reaktion auf ein Empfangen einer durch den Job-Verfolger zugewiesenen Reduce-Aufgabe. - In Schritt
S401 lädt ein Benutzer auf einem Client zunächst eine Eingangsdatei auf ein auf einem Cluster des Rechenzentrums bereitgestelltes verteilten Dateisystem hoch, übermittelt dann eine Job-Anfrage an den Job-Verfolger und partitioniert die Eingangsdatei in M Eingangsdatenteile, deren Größe im Allgemeinen jeweils zwischen 16 und 64 MB liegt, und lädt danach auch das zum Ausführen des Jobs erforderliche Programm auf das auf dem Cluster des Rechenzentrums bereitgestellte verteilte Dateisystem hoch. Beim Empfangen der durch den Client übermittelten Job-Anfrage teilt der Job-Verfolger den Job in mehrere Aufgaben, wozu M Map-Aufgaben und M Reduce-Aufgaben gehören, und ist für das Zuweisen der Map-Aufgaben oder Reduce-Aufgaben zu freien Aufgabenverfolgern zuständig. -
5 zeigt einen Ablaufplan eines Verfahrens zum Durchführen einer Map-Aufgabe durch den Map-Aufgaben-Verfolger gemäß einer Ausführungsform der Erfindung. Als Reaktion auf das Empfangen einer durch den Job-Verfolger zugewiesenen Map-Aufgabe führt der Map-Aufgaben-Verfolger die folgenden Schritte durch: - In Schritt
S501 Lesen von Eingangsdatenteilen der Map-Aufgabe von einer durch den Job-Verfolger angegebenen Speicherposition, wobei es sich bei der Speicherposition um einen mit dem Map-Aufgaben-Verfolger bereitgestellten lokalen Server oder einen anderen Server handeln kann; - In Schritt
S502 Analysieren von Schlüssel-Wert-Paaren von den Eingangsdatenteilen; - In Schritt
S503 Aufrufen der Map-Funktion, um eine Bearbeitung an den Schlüssel-Wert-Paaren durchzuführen und die Ausgaben der Map-Funktion zu erzeugen: Die Schlüssel-Wert-Paare werden an eine benutzerdefinierte Map-Funktion „Map ()“ geleitet, und die durch die „Map ()“-Funktion erzeugten Zwischen-Schlüssel-Wert-Paare werden im Arbeitsspeicher gepuffert; und - In Schritt
S504 Partinionieren der Ausgaben der Map-Funktion, um Ausgaben der Map-Aufgabe zu bilden: Die im Arbeitsspeicher gepufferten Zwischen-Schlüssel-Wert-Paare werden periodisch auf lokale Festplatten geschrieben und die Partitionierungsergebnisse der Zwischen-Schlüssel-Wert-Paare, d.h. die Ausgaben der Map-Aufgabe, werden durch die Partitionierungsfunktion „partition ()“ erzeugt. - In Schritt
S402 schreibt der Map-Aufgaben-Verfolger die Ausgaben der Map-Aufgabe auf das Speichernetzwerk: Die durch die Partitionierungsfunktion „partition ()“ erzeugten Partitionierungsergebnisse werden auf R Regionen der lokalen Festplatten geschrieben; da Sever von herkömmlichen Datenzentren über keine oder nur kleine lokale Festplatten verfügen und die Server Speicherplatz nutzen, der durch das SAN bereitgestellt wird, um große Datenmengen zu speichern, werden die durch die „Map ()“-Funktion erzeugten Zwischen-Schlüssel-Wert-Paare und die Partitionierungsergebnisse der Zwischen-Schlüssel-Wert-Paare, d.h. die Ausgaben der Map-Aufgabe, in Speichereinheiten des SAN gespeichert. - Gemäß einer Ausführungsform der Erfindung umfasst das Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch den Map-Aufgaben-Verfolger weiter ein Festhalten bzw. Aufzeichnen (diese Analogie gilt auch für den weiteren Text) der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe und bei Beendigung der Map-Aufgabe ein Senden einer Benachrichtigung über die Beendigung der Map-Aufgabe an den Job-Verfolger und ein Senden der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe an den Job-Verfolger.
- Gemäß einer Ausführungsform der vorliegenden Erfindung schreibt der Map-Aufgaben-Verfolger die Ausgaben der Map-Aufgabe durch FCP (Fiber-Channel-Protokoll) in Form von Datenblöcken auf das Speichernetzwerk. Genauer greift der Map-Aufgaben-Verfolger auf die logischen Einheiten auf Speichereinheiten, die dem Map-Aufgaben-Verfolger durch das Speichernetzwerk zugewiesen sind, durch eine FCP-Einheit auf dem lokalen Server zu und schreibt die Ausgaben der Map-Aufgabe in Form von Datenblöcken auf die entsprechende Position der logischen Einheit. Gemäß dieser Ausführungsform können die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe durch die Kombination von Feldern wie dem weltweiten Anschlussnamen (World-Wide Port Name (WWPN)) zur Speichereinheitsidentifikation, der Nummer der logischen Einheit (Logical Unit Number (LUN)), der Startadressenverschiebung des Datenblocks in der logischen Einheit, der Datenblocklänge usw. gekennzeichnet werden. Für den Fachmann ist ersichtlich, dass neben den vorstehend genannten Feldern weitere Erweiterungsfelder, die auf der Grundlage von anderen Arten des Schreibens der Datenblöcke definiert sein können, unter den Umfang der vorliegenden Erfindung fallen.
- Gemäß einer anderen Ausführungsform der Erfindung schreibt der Map-Aufgaben-Verfolger die Ausgaben der Map-Aufgabe durch ein Speichernetzwerk-Dateisystem auf das Speichernetzwerk. Genauer wird zunächst festgestellt, ob das Speichernetzwerk-Dateisystem auf dem mit dem Map-Aufgaben-Verfolger bereitgestellten lokalen Server installiert worden ist; dann werden die Ausgaben der Map-Aufgabe auf das Speichernetzwerk-Dateisystem geschrieben und der Pfadname der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems als Schreibpositionsinformationen der Ausgaben der Map-Aufgabe festgehalten.
- Für den Fachmann ist ersichtlich, dass der Map-Aufgaben-Verfolger und der Reduce-Aufgaben-Verfolger zuvor auch ein Lesen/Schreiben in einem bestimmten Speicherraum des SANs festlegen können, wobei es in diesem Fall es unnötig ist, die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe festzuhalten und zu übermitteln.
-
6 zeigt einen Ablaufplan eines Verfahrens zum Durchführen einer Reduce-Aufgabe durch den Reduce-Aufgaben-Verfolger gemäß einer Ausführungsform der Erfindung, wobei der Reduce-Aufgaben-Verfolger den folgenden Schritt durchführt: - In Schritt
S601 werden als Reaktion auf ein Empfangen einer durch den Job-Verfolger zugewiesenen Reduce-Aufgabe und der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe die Ausgaben der Map-Aufgabe von der entsprechenden Schreibposition des Speichernetzwerks gelesen. - Gemäß einer Ausführungsform der vorliegenden Erfindung erhält der Reduce-Aufgaben-Verfolger die Datenblöcke der Ausgaben der Map-Aufgabe von dem Speichernetzwerk durch das Fiber-Channel-Protokoll (FCP). Genauer liest der Reduce-Aufgaben-Verfolger die Datenblöcke der Ausgaben der Map-Aufgabe von der entsprechenden Schreibposition des Speichernetzwerks: Zunächst werden die empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe aufgelöst, um Felder wie den WWPN, die LUN, die Startadressenverschiebung der Datenblöcke und die Datenblocklänge zu erhalten, und dann wird durch die FCP-Einheit auf dem mit dem Reduce-Aufgaben-Verfolger bereitgestellten lokalen Server direkt auf die durch die vorstehenden Felder gekennzeichnete logische Einheit auf der Speichereinheit zugegriffen, um die Datenblöcke der Ausgaben der Map-Aufgabe zu erhalten. Da dieses Verfahren der Datenübertragung direkt das FCP-Protokoll der niedrigeren Ebene des Speichernetzwerks verwendet, besitzt die Datenübertragung den Vorteil hohen Durchsatzes und kurzer Latenzzeiten.
- Gemäß einer anderen Ausführungsform der Erfindung erhält der Reduce-Aufgaben-Verfolger die Ausgaben der Map-Aufgabe über das Speichernetzwerk-Dateisystem. Genauer wird zunächst festgestellt, ob das Speichernetzwerk-Dateisystem auf dem mit dem Reduce-Aufgaben-Verfolger bereitgestellten lokalen Server installiert worden ist; dann analysiert der Reduce-Aufgaben-Verfolger die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe von dem Job-Verfolger, um den Pfadnamen der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems zu erhalten, und wandelt weiterhin den Pfadnamen im globalen Namensraum in einen Pfadnamen im lokalen Dateisystem des lokalen Servers um und erhält die Ausgaben der Map-Aufgabe, indem er auf den Pfadnamen des lokalen Dateisystems zugreift. Dieses Verfahren nutzt das Protokoll der höheren Ebene für die Datenübertragung und besitzt den Vorteil niedriger Entwicklungskosten.
- In Schritt
S602 wird die Reduce-Funktion aufgerufen, um eine Bearbeitung an den Ausgaben der Map-Aufgabe durchzuführen, um Ausgaben der Reduce-Aufgabe zu erzeugen, wobei der Reduce-Aufgaben-Verfolger nach dem Lesen aller Zwischendaten die Inhalte mit demselben Schlüssel durch Sortieren zusammenführt. Das Sortieren ist notwendig, weil derselben Reduce-Aufgabe viele verschiedene Schlüssel zugeordnet werden. Für jeden angetroffenen eindeutigen Schlüssel leitet sie den Schlüssel und einen zugehörigen Satz von Zwischenwerten an die durch die Anwendungsentwickler selbst definierte Reduce-Funktion, und die Ausgaben der Reduce-Funktion werden zu einer endgültigen Ausgabedatei hinzugefügt. - In Schritt
S603 wird bei Beendigung der Reduce-Aufgabe eine Benachrichtigung über die Beendigung der Reduce-Aufgabe an den Job-Verfolger gesendet. Wenn alle Map- und Reduce-Aufgaben beendet sind, benachrichtigt der Job-Verfolger das Benutzerprogramm. - Unter demselben erfinderischen Konzept schlägt die vorliegende Erfindung weiter ein System für die MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk (SAN) vor.
7 zeigt ein System700 für die MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk gemäß einer Ausführungsform der vorliegenden Erfindung. Das System umfasst Folgendes: einen Job-Verfolger701 , der so eingerichtet ist, dass er einen Map-Aufgaben-Verfolger zum Durchführen einer Map-Aufgabe und einen Reduce-Server zum Durchführen einer Reduce-Aufgabe zuweisen kann; der Map-Aufgaben-Verfolger702 ist so eingerichtet, dass er als Reaktion auf ein Empfangen der durch den Job-Verfolger zugewiesenen Map-Aufgabe die Map-Aufgabe durchführen kann, um Ausgaben der Map-Aufgabe zu erzeugen und die Ausgaben der Map-Aufgabe auf das Speichernetzwerk zu schreiben; und der Reduce-Aufgaben-Verfolger703 ist so eingerichtet, dass er als Reaktion auf ein Empfangen einer durch den Job-Verfolger zugewiesenen Reduce-Aufgabe die Ausgaben der Map-Aufgabe vom Speichernetzwerk lesen kann. - Dabei umfasst der Map-Aufgaben-Verfolger weiterhin Folgendes: ein Datenlesemodul, dass so eingerichtet ist, dass es als Reaktion auf ein Empfangen einer durch den Job-Verfolger zugewiesenen Map-Aufgabe, die Eingangsdatenteile der Map-Aufgabe von der durch den Job-Verfolger angegebenen Speicherposition lesen kann; ein Analysemodul, das so eingerichtet ist, dass es Schlüssel-Wert-Paare von den Eingangsdatenteilen analysieren kann; ein Map-Funktions-Aufruf-Modul, das so eingerichtet ist, dass eine Map-Funktion aufrufen kann, um eine Bearbeitung an den Schlüssel-Wert-Paaren durchzuführen und die Ausgaben der Map-Funktion zu erzeugen; ein Partitioniermodul, das so eingerichtet ist, dass es die Ausgaben der Map-Funktion partitionieren kann, um die Ausgaben der Map-Aufgabe zu bilden; ein Schreibmodul, das so eingerichtet ist, dass es die Ausgaben der Map-Aufgabe auf das Speichernetzwerk schreiben kann und die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe festhalten kann; und ein Map-Aufgaben-Benachrichtigungsmodul, das so eingerichtet ist, dass es bei Beendigung der Map-Aufgabe eine Benachrichtigung über die Beendigung der Map-Aufgabe an dem Job-Verfolger senden kann und die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe an den Job-Verfolger senden kann.
- Gemäß einer Ausführungsform der vorliegenden Erfindung ist das Schreibmodul weiterhin so eingerichtet, dass es die Ausgaben der Map-Aufgabe durch das Fiber-Channel-Protokoll (FCP) in Form von Datenblöcken auf das Speichernetzwerk schreiben kann. Genauer ist das Schreibmodul weiterhin so eingerichtet, dass es: die Ausgaben der Map-Aufgabe durch das Fiber-Channel-Protokoll (FCP) auf die entsprechende Position der dem Map-Aufgaben-Verfolger zugewiesenen logischen Einheit auf der Speichereinheit im Speichernetzwerk schreiben kann; und die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe, wozu die Felder der Speichereinheitenidentifikation WWPN, der Nummer der logischen Einheit LUN, die Startadressenverschiebung der Datenblöcke in der logischen Einheit und die Datenblocklänge gehören, festhalten kann.
- Gemäß einer anderen Ausführungsform der Erfindung ist das Schreibmodul weiterhin so eingerichtet, dass es die Ausgaben der Map-Aufgabe über ein Speichernetzwerk-Dateisystem auf das Speichernetzwerk schreiben kann. Genauer ist das Schreibmodul weiterhin so eingerichtet, dass es: prüfen kann, ob ein Speichernetzwerk-Dateisystem auf einem mit dem Map-Aufgaben-Verfolger versehenen Server installiert worden ist; die Ausgaben der Map-Aufgabe auf das Speichernetzwerk-Dateisystem schreiben kann; und den Pfadnamen der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems als Schreibpositionsinformationen der Ausgaben der Map-Aufgabe festhalten kann.
- Dabei umfasst der Reduce-Aufgaben-Verfolger weiterhin Folgendes: ein Map-Aufgaben-Ausgaben-Lesemodul, das so eingerichtet ist, dass es als Reaktion auf ein Empfangen der durch den Job-Verfolger zugewiesenen Reduce-Aufgabe und der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe die Ausgaben der Map-Aufgabe von der entsprechenden Schreibposition des Speichernetzwerks lesen kann.
- Gemäß einer Ausführungsform der vorliegenden Erfindung ist das Map-Aufgaben-Ausgaben-Lesemodul weiterhin so eingerichtet, dass es die Datenblöcke der Ausgaben der Map-Aufgabe von dem Speichernetzwerk durch das Fiber-Channel-Protokoll (FCP) erhalten kann. Genauer ist das Lesemodul weiterhin so eingerichtet, dass es: die empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe analysieren kann, um die Felder der Speichereinheiten-Kennzeichnung WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und der Datenblocklänge zu erhalten; und die Ausgaben der Map-Aufgabe von der entsprechenden Position der logischen Einheit auf der Speichereinheit im Speichernetzwerk lesen kann, die durch die Felder der Speichereinheiten-Kennzeichnung WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und der Datenblocklänge gekennzeichnet wird.
- Gemäß einer Ausführungsform der vorliegenden Erfindung ist das Map-Aufgaben-Ausgabe-Lesemodul weiterhin so eingerichtet, dass es die Ausgaben der Map-Aufgabe durch das Speichernetzwerk-Dateisystem erhalten kann. Genauer ist das Lesemodul weiterhin so eingerichtet, dass es: prüfen kann, ob das Speichernetzwerk-Dateisystem auf dem mit dem Reduce-Aufgaben-Verfolger versehenen Server installiert worden ist; die empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe analysieren kann, um den Pfadnamen der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems zu erhalten; den Pfadnamen in einen Pfadnamen im lokalen Dateisystem des lokalen mit dem Reduce-Aufgaben-Verfolger versehenen Servers umwandeln kann; und die Ausgaben der Map-Aufgabe durch Zugreifen auf den Pfadnamen im lokalen Dateisystem erhalten kann.
- Es ist festzuhalten, dass zumindest manche Aspekte der vorliegenden Erfindung alternativ durch ein Programmprodukt realisiert werden können. Ein Programm, das Funktionen bezüglich der vorliegenden Erfindung definiert, kann über vielfältige Signalträgermedien, darunter, jedoch nicht beschränkt auf, nicht beschreibbare Speichermedien (z.B. eine CD-ROM), beschreibbare Speichermedien (z.B. eine Floppy Disk, ein Festplattenlaufwerk, eine Lese/Schreib-CD-ROM, ein optischer Datenträger) und Datenübertragungsmedien wie Computer- und Telefonnetzwerke wie Ethernet und Ähnliches, an ein Datenspeichersystem oder ein Computersystem übertragen werden. Daher ist festzuhalten, dass die Arten der Signalträgermedien, welche die computerlesbaren Anweisungen zum Verwalten von Verfahrensfunktionen der vorliegenden Erfindung tragen oder damit codiert sind, eine alternative Ausführungsform der vorliegenden Erfindung darstellen. Die Erfindung kann durch Hardware, Software, Firmware oder eine Kombination davon realisiert werden. Die Erfindung kann zentral in einem einzigen Computersystem oder auf verteilte Weise realisiert werden, wobei unterschiedliche Komponenten auf mehrere verbundene Computersysteme verteilt sind. Jedes beliebige Computersystem oder andere Mittel ist geeignet, das zum Durchführen des in der Beschreibung dargelegten Verfahrens anwendbar ist. Vorzugsweise wird die vorliegende Erfindung in einer Kombination von Computer-Software und allgemeiner Computer-Hardware realisiert, wobei das Computerprogramm beim Laden und Ausführen das Computersystem steuert, welches das Verfahren der vorliegenden Erfindung durchführen oder das System der vorliegenden Erfindung ausbilden soll.
- Die vorstehende Beschreibung bevorzugter Ausführungsformen der Erfindung erfolgt zu Beispielzwecken. Die vorstehende Beschreibung bevorzugter Ausführungsformen ist weder erschöpfend noch als die Erfindung auf die offenbarte explizite Form einschränkend gedacht, und offensichtlich sind im Licht der vorstehenden Lehren viele Modifikationen und Änderungen möglich. Es ist für den Fachmann offensichtlich, dass die Modifikationen und Änderungen im Umfang der vorliegenden, durch die angehängten Ansprüche definierten Erfindung enthalten sind.
Claims (20)
- Verfahren zur MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk, wobei das Rechenzentrum mehrere mit einem Job-Verfolger (701), Map-Aufgaben-Verfolgern (702) und Reduce-Aufgaben-Verfolgern (703) versehene Server enthält, wobei das Verfahren Folgendes aufweist: als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Map-Aufgabe Durchführen (S401) einer Map-Aufgabe, was Bearbeitung an Schlüssel-Wert-Paaren umfasst,und Erzeugen von Ausgaben der Map-Aufgabe durch einen Map-Aufgaben-Verfolger (702), wobei die Ausgaben Zwischen-Schlüssel-Wert-Paare aufweisen; Schreiben (S402) der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch den Map-Aufgaben-Verfolger (702), was Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch ein Speichernetzwerk-Dateisystem aufweist; und als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe Lesen (S403) der Ausgaben der Map-Aufgabe vom Speichernetzwerk durch einen Reduce-Aufgaben-Verfolger (703).
- Verfahren nach
Anspruch 1 , wobei der Schritt des Durchführens der Map-Aufgabe und des Erzeugens von Ausgaben der Map-Aufgabe durch den Map-Aufgaben-Verfolger (702) als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Map-Aufgabe weiterhin Folgendes aufweist: als Reaktion auf das Empfangen der durch den Job-Verfolger zugewiesenen Map-Aufgabe Lesen (S501) von Eingangsdatenteilen der Map-Aufgabe von der durch den Job-Verfolger (701) angegebenen Speicherposition; Analysieren (S502) von Schlüssel-Wert-Paaren von den Eingangsdatenteilen; Aufrufen (S503) einer Map-Funktion, um eine Bearbeitung an den Schlüssel-Wert-Paaren durchzuführen, und Erzeugen von Ausgaben der Map-Funktion; und Partitionieren (S504) der Ausgaben der Map-Funktion, um die Ausgaben der Map-Aufgabe zu bilden. - Verfahren nach
Anspruch 1 oder2 , wobei das Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch den Map-Aufgaben-Verfolger (702) weiterhin Folgendes aufweist: Aufzeichnen der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe; und bei Beendigung der Map-Aufgabe Senden einer Benachrichtigung über eine Beendigung der Map-Aufgabe an den Job-Verfolger (701) und Senden der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe an den Job-Verfolger (701). - Verfahren nach
Anspruch 3 , in dem als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe das Lesen der Ausgaben der Map-Aufgabe durch einen Reduce-Aufgaben-Verfolger (702) von dem Speichernetzwerk weiterhin Folgendes aufweist: als Reaktion auf das Empfangen der durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe und der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe, Lesen (S601) der Ausgaben der Map-Aufgabe von der entsprechenden Schreibposition des Speichernetzwerks durch den Reduce-Aufgaben-Verfolger (702). - Verfahren nach
Anspruch 4 , wobei das Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch den Map-Aufgaben-Verfolger (702) weiterhin Folgendes aufweist: Schreiben der Ausgaben der Map-Aufgabe in der Form von Datenblöcken auf die entsprechende Position der dem Map-Aufgaben-Verfolger (702) zugewiesenen logischen Einheit durch das Fiber-Channel-Protokoll (FCP), wobei sich die logische Einheit auf einer Speichereinheit im Speichernetzwerk befindet. - Verfahren nach
Anspruch 5 , wobei die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe mindestens Felder einer Speichereinheiten-Kennzeichnung WWPN, einer Nummer der logischen Einheit LUN, einer Startadressenverschiebung der Datenblöcke in der logischen Einheit und einer Datenblocklänge umfassen. - Verfahren nach
Anspruch 6 , in dem als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe das Lesen der Ausgaben der Map-Aufgabe durch einen Reduce-Aufgaben-Verfolger (702) von dem Speichernetzwerk weiterhin Folgendes aufweist: Analysieren der empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe, um die Felder der Speichereinheiten-Kennzeichnung WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und Datenblocklängenfeldern zu erhalten; und Lesen der Ausgaben der Map-Aufgabe von der entsprechenden Position der logischen Einheit auf der Speichereinheit im Speichernetzwerk, die durch die Felder der Speichereinheitenidentifikation WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und den Datenblocklängenfelder gekennzeichnet wird. - Verfahren nach einem der
Ansprüche 1 bis7 , wobei das Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk durch ein Speichernetzwerk-Dateisystem weiterhin Folgendes aufweist: Feststellen, ob das Speichernetzwerk-Dateisystem auf dem mit dem Map-Aufgaben-Verfolger (702) versehenen Server installiert worden ist; und Schreiben der Ausgaben der Map-Aufgabe auf das Speichernetzwerk-Dateisystem. - Verfahren nach
Anspruch 8 , wobei das Festhalten der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe weiterhin Folgendes aufweist: Aufzeichnen des Pfadnamens der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems als die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe. - Verfahren nach
Anspruch 9 , wobei als Reaktion auf das Empfangen der durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe das Lesen der Ausgaben der Map-Aufgabe durch einen Reduce-Aufgaben-Verfolger von dem Speichernetzwerk weiterhin Folgendes aufweist: Feststellen, ob das Speichernetzwerk-Dateisystem auf dem mit dem Reduce-Aufgaben-Verfolger (703) versehenen Server installiert worden ist; Auflösen der empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe, um den Pfadnamen der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems zu erhalten; Umwandeln des Pfadnamens in einen Pfadnamen im lokalen Dateisystem des mit dem Reduce-Aufgaben-Verfolger (703) versehenen Servers; und Erhalten der Ausgaben der Map-Aufgabe durch Zugreifen auf den Pfadnamen in den lokalen Dateisystemen. - System (700) zur MapReduce-Datenübertragung in einem Rechenzentrum mit einem Speichernetzwerk, wobei das System Folgendes aufweist: einen Job-Verfolger (701), der so eingerichtet ist, dass er einen Map-Aufgaben-Verfolger (702) zum Durchführen einer Map-Aufgabe und einen Reduce-Aufgaben-Verfolger (703) zum Durchführen einer Reduce-Aufgabe zuweist; Map-Aufgaben-Verfolger (702), die so eingerichtet sind, dass sie als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Map-Aufgabe die Map-Aufgabe durchführen können, was Bearbeitung an Schlüssel-Wert-Paaren umfasst, um Ausgaben der Map-Aufgabe zu erzeugen, welche Ausgaben Zwischen-Schlüssel-Wert-Paare aufweisen, und die Ausgaben der Map-Aufgabe auf das Speichernetzwerk zu schreiben; Reduce-Aufgaben-Verfolger (703), die so eingerichtet sind, dass sie als Reaktion auf ein Empfangen einer durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe die Ausgaben der Map-Aufgabe vom Speichernetzwerk lesen; ein Schreibmodul, das so eingerichtet ist, dass es die Ausgaben der Map-Aufgabe auf das Speichernetzwerk schreibt, wobei das Schreibmodul weiterhin so eingerichtet ist, dass es die Ausgaben der Map-Aufgabe über ein Speichernetzwerk-Dateisystem auf das Speichernetzwerk schreibt.
- System nach
Anspruch 11 , wobei die Map-Aufgaben-Verfolger (702) weiterhin Folgendes aufweist: ein Datenlesemodul, das so eingerichtet ist, dass es als Reaktion auf das Empfangen der durch den Job-Verfolger (701) zugewiesenen Map-Aufgabe, Eingangsdatenteile der Map-Aufgabe von der durch den Job-Verfolger (701) angegebenen Speicherposition liest; ein Analysemodul, das so eingerichtet ist, dass es Schlüssel-Wert-Paare von den Eingangsdatenteilen analysiert; ein Map-Funktions-Aufruf-Modul, das so eingerichtet ist, dass es eine Map-Funktion aufruft, um eine Bearbeitung an den Schlüssel-Wert-Paaren durchzuführen und Ausgaben der Map-Funktion zu erzeugen; ein Partitioniermodul, das so eingerichtet ist, dass es die Ausgaben der Map-Funktion partitioniert, um die Ausgaben der Map-Aufgabe zu bilden. - System nach
Anspruch 11 oder12 , wobei die Map-Aufgaben-Verfolger (702) weiterhin Folgendes aufweist: ein Festhaltemodulmodul, das so eingerichtet ist, dass es die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe festhält; und ein Map-Aufgaben-Benachrichtigungsmodul, das so eingerichtet ist, dass es bei Beendigung der Map-Aufgabe eine Benachrichtigung über die Beendigung der Map-Aufgabe an den Job-Verfolger (701) sendet und die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe an den Job-Verfolger (701) sendet. - System nach
Anspruch 13 , wobei die Reduce-Aufgaben-Verfolger (703) weiterhin Folgendes aufweist: ein Map-Aufgaben-Ausgaben-Lesemodul, das so eingerichtet ist, dass es als Reaktion auf das Empfangen der durch den Job-Verfolger (701) zugewiesenen Reduce-Aufgabe und der Schreibpositionsinformationen der Ausgaben der Map-Aufgabe die Ausgaben der Map-Aufgabe von der entsprechenden Schreibposition des Speichernetzwerks liest. - System nach
Anspruch 14 , wobei das Schreibmodul weiterhin so eingerichtet ist, dass es die Ausgaben der Map-Aufgabe in der Form von Datenblöcken auf die entsprechende Position der dem Map-Aufgaben-Verfolger zugewiesenen logischen Einheit durch das Fiber-Channel-Protokoll (FCP) schreibt, wobei sich die logische Einheit auf einer Speichereinheit im Speichernetzwerk befindet. - System nach
Anspruch 15 , wobei die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe mindestens Felder einer Speichereinheiten-Kennzeichnung WWPN, einer Nummer der logischen Einheit LUN, einer Startadressenverschiebung der Datenblöcke in der logischen Einheit und Datenblocklängenfeldern beinhalten. - System nach
Anspruch 16 , wobei das Map-Aufgaben-Ausgaben-Lesemodul weiterhin so eingerichtet ist, dass es: die empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe analysiert, um die Felder der Speichereinheiten-Kennzeichnung WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und der Datenblocklängenfeldern zu erhalten; und die Ausgaben der Map-Aufgabe von der entsprechenden Position der logischen Einheit auf der Speichereinheit im Speichernetzwerk liest, die durch die Felder der Speichereinheitenidentifikation WWPN, der Nummer der logischen Einheit LUN, der Startadressenverschiebung der Datenblöcke in der logischen Einheit und der Datenblocklängenfelder identifiziert wird. - System nach einem der
Ansprüche 11 bis17 , wobei das Schreibmodul weiterhin so eingerichtet ist, dass es: feststellt, ob ein Speichernetzwerk-Dateisystem auf dem mit dem Map-Aufgaben-Verfolger (702) versehenen Server installiert worden ist; und die Ausgaben der Map-Aufgabe auf das Speichernetzwerk-Dateisystem schreibt. - System nach
Anspruch 18 , wobei das Festhaltemodul weiterhin so eingerichtet ist, dass es: den Pfadnamen der Ausgaben der Map-Aufgabe innerhalb des globalen Namensraums des Speichernetzwerk-Dateisystems als die Schreibpositionsinformationen der Ausgaben der Map-Aufgabe aufzeichnet. - System nach
Anspruch 19 , wobei das Map-Aufgaben-Ausgaben-Lesemodul weiterhin so eingerichtet ist, dass es: prüft, ob das Speichernetzwerk-Dateisystem auf den mit dem Reduce-Aufgaben-Verfolger (703) versehenen Servern installiert worden ist; die empfangenen Schreibpositionsinformationen der Ausgaben der Map-Aufgabe analysiert, um den Pfadnamen der Ausgaben der Map-Aufgabe im globalen Namensraum des Speichernetzwerk-Dateisystems zu erhalten; den Pfadnamen in einen Pfadnamen im lokalen Dateisystem des mit dem Reduce-Aufgaben-Verfolger bereitgestellten Servern umwandelt; und die Ausgaben der Map-Aufgabe durch Zugreifen auf den Pfadnamen im lokalen Dateisystem erhält.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010138992.6 | 2010-03-31 | ||
CN201010138992.6A CN102209087B (zh) | 2010-03-31 | 2010-03-31 | 在具有存储网络的数据中心进行MapReduce数据传输的方法和系统 |
PCT/EP2011/053809 WO2011120791A1 (en) | 2010-03-31 | 2011-03-14 | Transmission of map-reduce data based on a storage network or a storage network file system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112011101109T5 DE112011101109T5 (de) | 2013-01-10 |
DE112011101109B4 true DE112011101109B4 (de) | 2019-02-07 |
Family
ID=43927896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011101109.1T Active DE112011101109B4 (de) | 2010-03-31 | 2011-03-14 | Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems |
Country Status (5)
Country | Link |
---|---|
US (1) | US9590915B2 (de) |
CN (1) | CN102209087B (de) |
DE (1) | DE112011101109B4 (de) |
GB (1) | GB2491730B (de) |
WO (1) | WO2011120791A1 (de) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048765B1 (en) | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
US9246914B2 (en) * | 2010-07-16 | 2016-01-26 | Nokia Technologies Oy | Method and apparatus for processing biometric information using distributed computation |
US8983960B1 (en) * | 2011-03-28 | 2015-03-17 | Google Inc. | Opportunistic job processing |
CN103139265B (zh) | 2011-12-01 | 2016-06-08 | 国际商业机器公司 | 大规模并行计算系统中的网络传输自适应优化方法及系统 |
CN102567312A (zh) * | 2011-12-30 | 2012-07-11 | 北京理工大学 | 一种基于分布式并行计算框架的机器翻译方法 |
CN102638456B (zh) * | 2012-03-19 | 2015-09-23 | 杭州海康威视数字技术股份有限公司 | 基于云计算的海量实时视频码流智能分析方法及其系统 |
US9280381B1 (en) * | 2012-03-30 | 2016-03-08 | Emc Corporation | Execution framework for a distributed file system |
US10169083B1 (en) * | 2012-03-30 | 2019-01-01 | EMC IP Holding Company LLC | Scalable method for optimizing information pathway |
CN102710772B (zh) * | 2012-06-04 | 2015-09-30 | 何春涛 | 一种基于云平台的海量数据通讯系统 |
CN102739778A (zh) * | 2012-06-05 | 2012-10-17 | 包丽霞 | 一种云平台下统计分析的实现方法 |
EP2859475A4 (de) * | 2012-06-06 | 2016-03-02 | Spiral Genetics Inc | Verfahren und system zum sortieren von daten in einer cloud-rechnerumgebung und anderen verteilten rechnerumgebungen |
US9507524B1 (en) | 2012-06-15 | 2016-11-29 | Qlogic, Corporation | In-band management using an intelligent adapter and methods thereof |
US10169348B2 (en) * | 2012-08-23 | 2019-01-01 | Red Hat, Inc. | Using a file path to determine file locality for applications |
CN103634361B (zh) * | 2012-08-28 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 下载文件的方法和装置 |
US11809506B1 (en) | 2013-02-26 | 2023-11-07 | Richard Paiz | Multivariant analyzing replicating intelligent ambience evolving system |
US11741090B1 (en) | 2013-02-26 | 2023-08-29 | Richard Paiz | Site rank codex search patterns |
US20140298343A1 (en) * | 2013-03-26 | 2014-10-02 | Xerox Corporation | Method and system for scheduling allocation of tasks |
CN103150403A (zh) * | 2013-03-28 | 2013-06-12 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
CN103226532A (zh) * | 2013-03-28 | 2013-07-31 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
CN103198109A (zh) * | 2013-03-28 | 2013-07-10 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
KR101480867B1 (ko) * | 2013-05-31 | 2015-01-09 | 삼성에스디에스 주식회사 | 맵리듀스 연산 가속 시스템 및 방법 |
US10860529B2 (en) * | 2014-08-11 | 2020-12-08 | Netapp Inc. | System and method for planning and configuring a file system migration |
US20160041996A1 (en) | 2014-08-11 | 2016-02-11 | Netapp, Inc. | System and method for developing and implementing a migration plan for migrating a file system |
US10084839B2 (en) * | 2013-12-27 | 2018-09-25 | Sap Se | Upload operation using multiple connections |
US9454305B1 (en) | 2014-01-27 | 2016-09-27 | Qlogic, Corporation | Method and system for managing storage reservation |
US9423980B1 (en) | 2014-06-12 | 2016-08-23 | Qlogic, Corporation | Methods and systems for automatically adding intelligent storage adapters to a cluster |
US9436654B1 (en) * | 2014-06-23 | 2016-09-06 | Qlogic, Corporation | Methods and systems for processing task management functions in a cluster having an intelligent storage adapter |
US9477424B1 (en) | 2014-07-23 | 2016-10-25 | Qlogic, Corporation | Methods and systems for using an intelligent storage adapter for replication in a clustered environment |
US11474874B2 (en) | 2014-08-14 | 2022-10-18 | Qubole, Inc. | Systems and methods for auto-scaling a big data system |
GB2530052A (en) | 2014-09-10 | 2016-03-16 | Ibm | Outputting map-reduce jobs to an archive file |
US9460017B1 (en) | 2014-09-26 | 2016-10-04 | Qlogic, Corporation | Methods and systems for efficient cache mirroring |
US10095654B2 (en) * | 2014-09-30 | 2018-10-09 | International Business Machines Corporation | Mapping and reducing |
US9483207B1 (en) | 2015-01-09 | 2016-11-01 | Qlogic, Corporation | Methods and systems for efficient caching using an intelligent storage adapter |
US9832137B1 (en) * | 2015-03-23 | 2017-11-28 | VCE IP Holding Company LLC | Provisioning system and method for a distributed computing environment using a map reduce process |
US11436667B2 (en) | 2015-06-08 | 2022-09-06 | Qubole, Inc. | Pure-spot and dynamically rebalanced auto-scaling clusters |
US20170054590A1 (en) * | 2015-08-21 | 2017-02-23 | Rohit Agarwal | Multi-Tenant Persistent Job History Service for Data Processing Centers |
CN105550305B (zh) * | 2015-12-14 | 2019-11-22 | 北京锐安科技有限公司 | 一种基于map/reduce的实时响应方法及系统 |
CN105608046A (zh) * | 2015-12-17 | 2016-05-25 | 南京航空航天大学 | 基于MapReduce编程模型的多核处理器架构 |
EP3376399A4 (de) * | 2015-12-31 | 2018-12-19 | Huawei Technologies Co., Ltd. | Datenverarbeitungsverfahren, vorrichtung und system |
CN105740397A (zh) * | 2016-01-28 | 2016-07-06 | 广州市讯飞樽鸿信息技术有限公司 | 一种基于大数据并行运算的语音信箱业务数据分析方法 |
US11775341B2 (en) | 2016-02-05 | 2023-10-03 | Sas Institute Inc. | Automated job flow generation to provide object views in container-supported many task computing |
CN105955819B (zh) * | 2016-04-18 | 2019-06-18 | 中国科学院计算技术研究所 | 基于Hadoop的数据传输方法及系统 |
US10356174B2 (en) * | 2016-05-06 | 2019-07-16 | Masergy Communications, Inc. | Multi-layer data storage system |
US11080207B2 (en) | 2016-06-07 | 2021-08-03 | Qubole, Inc. | Caching framework for big-data engines in the cloud |
US10606664B2 (en) | 2016-09-07 | 2020-03-31 | Qubole Inc. | Heterogeneous auto-scaling big-data clusters in the cloud |
CN107844259B (zh) * | 2016-09-18 | 2020-06-16 | 华为技术有限公司 | 数据访问方法、路由装置和存储系统 |
CN106533756B (zh) * | 2016-11-08 | 2019-06-18 | 中国科学院计算技术研究所 | 一种通信特征抽取、流量产生方法及装置 |
US10437633B1 (en) * | 2016-12-30 | 2019-10-08 | EMC IP Holding Company LLC | Data storage system management with promotion of task-level resource identifiers to higher objects |
US10733024B2 (en) | 2017-05-24 | 2020-08-04 | Qubole Inc. | Task packing scheduling process for long running applications |
CN107733859A (zh) * | 2017-09-03 | 2018-02-23 | 中国南方电网有限责任公司 | 一种基于大数据的网络安全分析系统及其分析方法 |
US11228489B2 (en) | 2018-01-23 | 2022-01-18 | Qubole, Inc. | System and methods for auto-tuning big data workloads on cloud platforms |
CN109144966A (zh) * | 2018-07-06 | 2019-01-04 | 航天星图科技(北京)有限公司 | 一种海量时空数据的高效组织与管理方法 |
US11762689B2 (en) | 2018-09-30 | 2023-09-19 | Sas Institute Inc. | Message queue protocol for sequential execution of related task routines in many task computing |
CN110032576B (zh) * | 2019-03-12 | 2023-06-16 | 平安科技(深圳)有限公司 | 一种业务处理方法以及装置 |
US11144360B2 (en) | 2019-05-31 | 2021-10-12 | Qubole, Inc. | System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system |
US11704316B2 (en) | 2019-05-31 | 2023-07-18 | Qubole, Inc. | Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks |
CN111444148B (zh) * | 2020-04-09 | 2023-09-05 | 南京大学 | 基于MapReduce的数据传输方法和装置 |
US11494081B2 (en) * | 2020-10-09 | 2022-11-08 | Seagate Technology Llc | System and method for using telemetry data to change operation of storage middleware client of a data center |
CN115203133A (zh) * | 2021-04-14 | 2022-10-18 | 华为技术有限公司 | 数据处理方法、装置、归约服务器及映射服务器 |
CN115687252A (zh) * | 2021-07-28 | 2023-02-03 | 华为云计算技术有限公司 | 计算方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080281993A1 (en) * | 2004-01-21 | 2008-11-13 | International Business Machines Corporation | Method and Apparatus for Controlling Access to Logical Units |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946685A (en) * | 1997-06-27 | 1999-08-31 | Sun Microsystems, Inc. | Global mount mechanism used in maintaining a global name space utilizing a distributed locking mechanism |
JP4818812B2 (ja) * | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
JP4417733B2 (ja) * | 2004-01-15 | 2010-02-17 | ソニー・エリクソン・モバイルコミュニケーションズ株式会社 | 伝送方法及び装置 |
US7590620B1 (en) * | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
US7650331B1 (en) * | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US8190610B2 (en) | 2006-10-05 | 2012-05-29 | Yahoo! Inc. | MapReduce for distributed database processing |
US8285757B2 (en) * | 2007-01-31 | 2012-10-09 | Agency For Science, Technology And Research | File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system |
-
2010
- 2010-03-31 CN CN201010138992.6A patent/CN102209087B/zh not_active Expired - Fee Related
-
2011
- 2011-03-14 US US13/638,409 patent/US9590915B2/en not_active Expired - Fee Related
- 2011-03-14 DE DE112011101109.1T patent/DE112011101109B4/de active Active
- 2011-03-14 WO PCT/EP2011/053809 patent/WO2011120791A1/en active Application Filing
- 2011-03-14 GB GB1212411.1A patent/GB2491730B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080281993A1 (en) * | 2004-01-21 | 2008-11-13 | International Business Machines Corporation | Method and Apparatus for Controlling Access to Logical Units |
Non-Patent Citations (2)
Title |
---|
DEAN, J.; GHEMAWAT, S.: MapReduce: Simplified Data Processing on Large Clusters. In: Proceedings of Operating Systems Design and Implementation (OSDI), 2004, S. 137-149. URL: http://static.usenix.org/event/osdi04/tech/full_papers/dean/dean.pdf [abgerufen am 29.03.2013] * |
SHAFER, J. ; RIXNER, S.; COX, A. L.: Datacenter Storage Architecture for MapReduce Applications. In: Workshop on Architectural Concerns in Large Datacenters (ACLD), 2009, S. 1-3. URL: http://www.jeffshafer.com/publications/papers/shafer_acld09.pdf/view [abgerufen am 29.03.2013] * |
Also Published As
Publication number | Publication date |
---|---|
GB2491730B (en) | 2018-05-16 |
DE112011101109T5 (de) | 2013-01-10 |
WO2011120791A1 (en) | 2011-10-06 |
US20130332612A1 (en) | 2013-12-12 |
US9590915B2 (en) | 2017-03-07 |
GB201212411D0 (en) | 2012-08-22 |
GB2491730A (en) | 2012-12-12 |
CN102209087A (zh) | 2011-10-05 |
CN102209087B (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011101109B4 (de) | Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems | |
DE102016105472B4 (de) | Speicherebenenverteilung und parallele Zuordnung auf Blockebene bei Dateisystemen | |
DE102013215009A1 (de) | Verfahren und System zur Optimierung der Datenübertragung | |
DE112019002948T5 (de) | Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen | |
DE112011104419B4 (de) | Bereichsmigration für gepaarte Speicherung | |
DE60111039T2 (de) | Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren | |
DE112012005037B4 (de) | Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds | |
DE60111072T2 (de) | Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten | |
DE202015009784U1 (de) | Ressourcenmanagementsysteme | |
DE202014010909U1 (de) | Verteilung von Daten in verteilten Speichersystemen | |
DE202009019149U1 (de) | Asynchron verteilte Speicherbereinigung für replizierte Speichercluster | |
DE202010018481U1 (de) | Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster | |
DE112016001075T5 (de) | Verteiltes speichern und abrufen von datensätzen | |
DE202009019139U1 (de) | Asynchron verteilte Deduplizierung für replizierte inhaltsadressierte Speichercluster | |
DE202014010898U1 (de) | Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem | |
DE202012013432U1 (de) | Speichern von Daten auf Speicherknoten | |
DE202020005734U1 (de) | Beschneiden von Indizes zur Verbesserung einer Verarbeitung von Datenbankabfragen | |
DE10062063B4 (de) | Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität | |
DE202011110890U1 (de) | System für die Bereitstellung eines Datenspeicherungs- und Datenverarbeitungsservices | |
DE112010004187T5 (de) | Verfahren und System zum Verarbeiten von Netzwerkereignissen | |
DE112010004931T5 (de) | Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten( | |
DE102017118341B4 (de) | Neuaufteilen von Daten in einem verteilten Computersystem | |
DE102021108572A1 (de) | Containerisierte anwendungsmanifeste und virtuelle persistente volumes | |
DE202020005703U1 (de) | Auf verteilten Metadaten basierendes Cluster-Computing | |
DE102012218269A1 (de) | Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |