2017-06-17 3 views
0

Ich habe eine eher theoretische Frage.Verwenden von HDFS zum Speichern von Dateien unterschiedlicher Größen

Mein Team entwickelt und unterstützt eine mittelgroße Java-Anwendung (derzeit 400.000 Zeilen), die viel mit Binärdateien zu tun hat. Derzeit speichern wir alle unsere Daten auf einem FS-Speicher. Wir haben ein kleines "Framework" entwickelt, mit dem wir die Dateispeicher in Zukunft skalieren können. Ich habe jedoch den starken Verdacht, dass das Speichern unserer Daten auf einem Windows/Linux-Dateisystem immer noch ein Flaschenhals bleiben würde (natürlich ein Rad neu erfinden) in der verteilten Datenverarbeitung und dann darauf verlassen, scheint es keine wirklich gute Lösung :)).

Die Größe einer Daten, mit denen wir umgehen, reicht von 1-2 MB pro Datei bis Hunderte von MB (selten Gigabyte) und es ist häufig zugegriffen. Aber ich möchte betonen, dass die Dateien meist klein sind. In Anbetracht unserer langfristigen Pläne, Big Data und ML-Analysen voranzutreiben, untersuche ich die Möglichkeit, das Hadoop-Ökosystem in unsere Anwendung zu integrieren.

Die Frage, die ich derzeit habe, ist, ob HDFS und wahrscheinlich HBase gut in unserer Umgebung spielen würden? Wie ich weiß, HDFS war Design, um wirklich große binäre Daten zu speichern, aber vielleicht mit HBase und einigen Konfigurations-Tuning ist es möglich, dieses Ding kleinere Daten arbeiten zu lassen? Ich muss auch erwähnen, dass Leistung zum Lesen und Schreiben von Dateien egal ist.

Ich würde gerne Ihre Erfahrung mit der Technologie, die ich erwähnt habe, hören und vielleicht kann jeder alternative Lösungen für das Problem empfehlen (Apache Parkett?).

Auch unser Team hat keine Erfahrung mit verteilten Big-Data-Lösungen, wie die von Hadoop. Wenn Sie also denken, dass diese Frameworks für unseren Fall funktionieren, können Sie vielleicht Ihr Feedback zu ihrer Integration oder Tipps geben um meine Untersuchung zu beginnen. Danke für Ihre Aufmerksamkeit. :)

P.S. Neben FS archivieren wir auch alte Daten und speichern große (> 1gb) Binärdateien, so dass die Einführung eines einzelnen Speichersystems auch in dieser Hinsicht cool ist.

+0

Für eine einzelne Datei, ist es einmal schreiben und oft lesen? – daemon12

+0

@ daemon12 Ja, das ist richtig. Auch haben wir derzeit viele Kopiervorgänge, aber vielleicht können wir das vermeiden, wenn wir zu einem anderen Speichersystem wechseln. Außerdem ist der Großteil des Codes derzeit veraltet, und wir bewegen uns Modul für Modul auf eine neue Plattform. Vielleicht können wir die Geschäftslogik so umgestalten, dass sie nicht viel kopiert werden muss. –

Antwort

0

Nach einer kleinen Untersuchung habe ich gelernt, dass die verteilten Dateispeicher wie HDFS und NoSQL-Speicher für Anwendungen mit geringer Latenz nicht ganz geeignet sind.

Diese Systeme wurden für den Einsatz in der Big Data-Welt entwickelt, in der ein hoher Gesamtdurchsatz mehr Wert ist als Latenz und die Größe der Binärdateien enorm ist.

Für die meisten cloudbasierten Anwendungen, die mit echten Benutzern interagieren oder Dienste für solche Anwendungen bereitstellen, sind die am besten geeigneten Datenspeicher Objektspeicher wie Amazon S3. Sie bieten bequeme API, angemessene Latenz, hohe Verfügbarkeit und praktisch unbegrenzt. Und am wichtigsten sind sie in der Regel verwaltet von Dritten, die eine Menge Arbeit und Sorgen auf der Seite der Entwickler beseitigt.

Verwandte Themen