2017-10-15 2 views
1

Ich bin neu in Hive; Ich bin mir also nicht sicher, wie Unternehmen Hive nutzen. Lass mich dir ein Szenario geben und sehen, ob ich konzeptionell korrekt über den Einsatz von Hive bin.Was sind häufige Anwendungsfälle von Hive?

Angenommen, meine Firma möchte einige Webserver-Protokolldateien behalten und in der Lage sein, die Protokolle immer zu durchsuchen und zu analysieren. Ich erstelle also eine Tabellenspalte, die den Spalten in der Protokolldatei entspricht. Dann lade ich die Protokolldatei in die Tabelle. Jetzt kann ich die Daten abfragen. So, da die Daten zu zukünftigen Terminen kommen, füge ich einfach die Daten zu dieser Tabelle hinzu, und daher habe ich meine Log-Dateien immer als eine Tabelle in Hive, die ich durchsuchen und analysieren kann.

Ist dieses Szenario über eine allgemeine Verwendung? Und wenn ja, wie füge ich dann neue Protokolldateien zur Tabelle hinzu? Muss ich sie jeden Tag manuell zur Tabelle hinzufügen?

Antwort

2

Sie können verwenden Sie Hive, für die Analyse über statische Datensätze, aber wenn Sie Streaming-Protokolle haben, würde ich wirklich nicht Hive dafür vorschlagen. Es ist keine Suchmaschine und dauert nur Minuten, um die richtigen Daten zu finden, nach denen Sie suchen.

HBase wäre wahrscheinlich eine bessere Alternative, wenn Sie innerhalb des Hadoop-Ökosystems bleiben müssen. (Hive kann Hbase abfragen)

Verwenden Sie Splunk, oder die Open-Source-Alternativen von Solr/Elasticsearch/Graylog, wenn Sie angemessene Tools für die Protokollanalyse benötigen.

Aber Ihre Fragen zu beantworten

wie kann ich halten das Hinzufügen neuer Protokolldateien auf den Tisch? Muss ich sie jeden Tag manuell zur Tabelle hinzufügen?

Verwenden Sie eine EXTERNAL Hive-Tabelle über einen HDFS-Speicherort für Ihre Protokolle. Verwenden Sie Flume, um Protokolldaten an diesen Pfad zu senden (oder senden Sie Ihre Protokolle an Kafka und von Kafka an HDFS sowie ein Such-/Analysesystem)

Sie müssen die Tabelle nur aktualisieren, wenn Sie Datumspartitionen hinzufügen (was Sie sollten, denn so erhalten Sie schnellere Hive-Abfragen). Sie würden MSCK REPAIR TABLE verwenden, um fehlende Partitionen in HDFS zu erkennen. Oder führen Sie ALTER TABLE ADD PARTITION selbst nach einem Zeitplan aus. Hinweis: Confluent des HDFS Kafka Connect automatisch Hive Tabellenpartitionen erstellen für Sie

Wenn Sie Hive verwenden müssen, können Sie die Abfragen besser verbessern können, wenn Sie die Daten in ORC oder Parkett Format konvertieren

+0

Sie haben gesagt, ich Gerinne verwenden können Daten in HDFS einbringen. Aber wie werden diese Daten zur selben Tabelle hinzugefügt? Die Antwort ist wahrscheinlich sehr einfach für Sie und Sie vermuten, dass ich weiß. Aber wie werden diese Daten zur Tabelle hinzugefügt? –

+0

All Hive ist Metadaten über einen HDFS-Speicherort. Setzen Sie mehr Daten auf den HDFS-Pfad, Hive kann es abfragen –

+0

Ich glaube nicht, dass Sie meine Frage verstehen. Ich verstehe, dass ich mit Hive beliebige Daten auf HDFS abfragen kann. aber ich möchte, dass sie alle Teil derselben Tabelle sind. Um es klarzustellen, nehmen wir an, ich wäre MySQL; Wenn die Daten eintreffen, füge ich sie einfach in dieselbe Tabelle ein, und dann kann ich Abfragen über die gleiche Tabelle durchführen. Das ist, was ich will, sagen wir für die nächsten 10 Jahre, wie die Daten hereinkommen, mein Prozess würde die Daten zu der gleichen Tabelle hinzufügen, und so frage ich in der Abfrage die gleiche Tabelle ab. –

Verwandte Themen