2016-07-08 3 views
0

Ich werde Hadoop in meinem neuen Projekt verwenden. Das Projektkonzept ist wie auf dem folgenden Bild: enter image description herePraktische Anwendung von Hadoop in Projekt

Benutzer hat Gerät, das einige Daten (Protokolle) erzeugt. Der Benutzer kann Daten vom Gerät als Datei abrufen und sie in die Web App/Hadoop hochladen. Ich werde eine Web-Anwendung mit Ruby on Rails erstellen.

Ich kenne einige Grundlagen von Hadoop (HDFS, Mapper, Reducer), aber ich weiß nicht, wie man Hadoop praktisch verwendet. Das Projekt ist nun nur noch ein Konzept, denn ich möchte zuerst einige Tipps bekommen und dann die Projektkomponenten an gesammelten Tipps anpassen.

Meine wichtigsten Überlegungen sind etwa:

  1. Web-App auf der gleichen Position wie Hadoop gespeichert werden sollte? (der gleiche Server/Cloud/Dienstanbieter)
  2. Wie Dateien hochladen? Kann man im Web-App-Formular Dateien hochladen? Oder ist es besser, eine Desktop-Anwendung zum Hochladen von Dateien zu erstellen (mögliche Dateigröße: 100 MB - 1 GB)?
  3. Wenn es Desktop-Anwendung wäre, ist es besser, Daten direkt an Hadoop oder irgendwie über Web-Anwendung zu senden?
  4. Können Sie mir einige nützliche Framework/Tool/API/Ressourcen zum Hochladen von externen Ressourcen (meine Web-App oder Desktop-Anwendung) zeigen?
  5. Wie werden die Hadoop-Daten korrekt verwendet? Nehmen wir an, dass die Benutzerdatei zu Hadoop gelangt. Ich weiß, dass ich Mapper und Reducer für diese Datei ausführen kann, was eine Ausgabedatei erzeugt (oder legt einige Daten an HBase - ich habe Recht?). Um diese Daten zu erhalten, brauche ich eine korrekte Ausgabedatei oder bekomme etwas "SELECT" von HBase, habe ich recht? Enthält Hadoop einen Trigger zum Senden von Informationen an externe Web-App, wenn der Job erledigt ist?

Ich freue mich über jeden Hinweis in diesem Thema.

+0

Warum benötigen Sie Hadoop überhaupt? Haben Sie viele Daten? –

+0

Beachten Sie, dass Hadoop nicht in Echtzeit verfügbar ist. Es ist schwierig, Daten von HDFS (Hadoop) aus Ihrer Webanwendung abzufragen. Normalerweise exportiert man Daten aus Hadoop, sobald sie verarbeitet wurden. –

+0

Guter Punkt, der nicht in Echtzeit ist, aber es ist kein Problem für jetzt. – nicq

Antwort

1
  1. Führen Sie Ihre Webanwendung nicht auf denselben Computern aus. Es ist besser, einen dedizierten Container | Maschinen für Ihren Hadoop-Cluster zu verwenden
  2. HDFS (Hadoop-Dateisystem) verfügt über eine API zum Lesen | Schreiben. Zum Beispiel gibt es einen WebHDFS
  3. Es ist immer besser zu denken, Ihre Web-App, weil auf diese Weise können Sie den Client richtig authentifizieren
  4. Ich bekomme das nicht. Meiner Meinung nach Upload ist einfach und man braucht keine Bibliotheken, um diese zu archivieren
  5. Fragen Sie nicht direkt Daten von HDFS. Exportieren Sie es anschließend in einen anderen Speicher. Wenn Sie darauf bestehen, es direkt zu benutzen, gibt es kein großes Problem. Verwenden Sie einfach WebHDFS.
+0

Großartig! Danke für die Antwort! Wenn ich eine Desktop-App erstellen würde, bei der Benutzer Dateien hochladen kann, ist es besser, diese Datei über die Web-App an Hadoop zu senden oder sie lieber direkt an HDFS zu senden? – nicq

+0

Es kommt darauf an. Vertrauen Sie einem Benutzer genug, um ihm direkten Zugriff auf HDFS zu geben? Die übliche Antwort ist nein. Wenn Sie die App jedoch für eine interne Verwendung erstellen, ist es möglicherweise einfacher, sie direkt auf HDFS hochzuladen. –

Verwandte Themen