4.2 Hive mit den MovieLens-Daten verwenden

Nehmen wir an, wir wollen herausfinden, welcher Film der populärste Film in unserem Datensatz ist. Starte dazu bitte deine VirtualBox und logge dich mit deinem Admin-Account bei Ambari ein. Bitte starte nun „Hive View“.

Du solltest nun folgendes Fenster sehen können:

Du siehst hier ein Eingabefeld für die HQL-Abfragen, Auf der linken Seite siehst du die verfügbaren Datenbanken, welche du über den „Database Explorer“ durchsuchen kannst. Falls du die 1. Übung gemacht hast, sollten bei dir noch in der „default“-Datenbank die Tabellen „ratings“ und „movies“ auftauchen. Dieses Tabellen brauchen wir nun wieder. Solltest du Sie nicht haben, gehe bitte auf Seite 1.2 Hadoop starten, Ambari testen und Hive verwenden und führe das Tutorial dazu durch.

Nachdem wir nun die beiden Tabellen in Hive zur Verfügung haben, können wir unsere Abfrage formulieren. Diese lautet wie folgt:

# Erstellen einer View, in der die Bewertungen gezählt werden und sortiert werden

CREATE VIEW meisteBewertungen AS SELECT movieid, count(movieid) as ratingCount FROM ratings
GROUP by movieid ORDER BY ratingCount DESC;

# Join zum Hinzufügen des Titels zur entsprechenden movieid
SELECT n.title, ratingCount FROM 
meisteBewertungen t Join movies n on t.movieid = n.movieid;

Dieser Vorgang dauert in der Regel einige Minuten, bis er abgeschlossen ist. Hintergrund ist, dass die Abfragen erst mit Tez umgesetzt werden müssen. Du solltest nach Abschluss einen ähnlichen Ausschnitt sehen können:

Herzlichen Glückwunsch, das war nun schon deine zweite Aufgabe, die du mit Hive umgesetzt hast!

Wie kann ich Hive nutzen?

  • im Command-Line Interface über die „hive>“-Eingabemaske
  • über gespeicherte Abfragedateien (hive -f /pfad/abfrage.hql)
  • mittels Ambari und Hive View (oder Hive View 2.0)
  • durch JDBC/ODBC-Server und Treiber
  • durch den „Thrift“-Service
  • durch „Oozie“

Weiter geht es mit: 4.3 MySQL und Sqoop verstehen