2012-04-05 12 views
2

Ich bin noch relativ neu in Hadoop, und ich habe ein bisschen darüber gelernt, indem ich einige Beispielübungen gemacht habe, aber ich hatte eine Frage, wie es in der Praxis verwendet wird. Viele der Anwendungen scheinen auf Batch-Verarbeitung (wie Logfile-Daten) ausgerichtet zu sein, aber ich bin mir nicht sicher, wie hbase hier hineinpasst?Hadoop Hbase Workflow

Ist es üblich, die Logfile-Daten in hbase zu speichern und sie dann in ein anderes Speicherformat zu verarbeiten und auszugeben? Ist es üblich, die rohen Logfiles einfach in hadoop zu übergeben und dann die Ausgabe in hbase zu speichern? Ich denke, meine eigentliche Frage ist hier, dass hbase typischerweise als Eingabe oder Ausgabe von hadoop verwendet wird, oder beides?

Antwort

4

HBase wird überall dort eingesetzt, wo Sie einen wahlfreien Zugriff mit geringer Latenz auf die Daten benötigen, während der Rest des Hadoop-Ökosystems wie angegeben batch-orientiert ist.

Um Ihr Log-Parsing-Beispiel zu verwenden, können Sie Protokolldateien, die in HDFS gespeichert sind, über MapReduce verarbeiten, aber was dann? Vermutlich möchten Sie im Laufe der Zeit Verkehrsmuster (Minuten, Stunden, Tage, was auch immer) sehen. Wenn Sie die Ergebnisse in HBase mit dem Zeitstempel als Zeilenschlüssel speichern, können Sie einen bestimmten Datumsbereich effizient abfragen (z. B. "Zeige mir alle Daten der letzten Woche"). HBase gibt das viel schneller zurück als classic MapReduce, weil es nicht alle Daten des letzten Monats, des letzten Jahres usw. durchsuchen muss, während MapReduce dies tun würde.

+0

das macht Sinn. Gibt es Fälle, in denen Sie die Eingabedaten in HBase speichern möchten? –

+0

Sicher - wenn Sie zum Beispiel mehrere Maschinen schreiben, ist HBase ziemlich gut damit umzugehen. Und wenn Sie MapReduce-Jobs zum Verarbeiten Ihrer Protokolle ausführen, sind diese Jobs effizienter, wenn sie sowohl Mapper als auch Reducers (Eingabe und Ausgabe) auf den HBase-Regionsservern ausführen, da dann die Daten wahrscheinlich seltener kopiert werden müssen das Netzwerk zum Zielspeicherknoten. –

+0

Cool, danke. Schätzen Sie die Eingabe. –

2

Gerinnen ist, wie viele Leute ihre Protokolldateien angeschlossen haben, um Echtzeitverarbeitung dieser Daten zu machen, wie es produziert wird. Sie können eine Quelle aus jeder Protokolldatei erstellen und eine Synchronisierung mit Ihrer HBase-Instanz durchführen

Schauen Sie sich auch OpenTSDB an, da sie über ein sehr schönes System zum Speichern von Cluster-Metriken auf HBase verfügen. Sie können möglicherweise einige ihrer Infrastruktur für Ihre Log-Analysen wiederverwenden.

Verwandte Themen