Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Big Data und Cloud Computing: Praktische Verarbeitung mit Linux, Hive und Impala – Lab 3 Leitfaden

Lerne in diesem Tutorial, wie du mit Linux-Befehlen, Hive und Impala einen CarSale-Datensatz analysierst – von Duplikatsprüfung bis zu komplexen Aggregationen. Ideal für Studierende der DAT 5566.

Big Data Tutorial Cloud Computing Übungen DAT 5566 Lab 3 Lösung Linux Befehle Big Data AWK Datenanalyse Hive Tabelle erstellen Impala Abfragen Beispiele Datenbereinigung mit Linux CarSale Datensatz Analyse Studenten Big Data Projekt Hive SQL Aggregation Cloud Computing Praxis Big Data Kompetenzen Data Engineering Workflow HDFS Datei hochladen Datenhygiene in der Cloud

Einleitung: Big Data Verarbeitung im Cloud-Zeitalter

In der heutigen datengetriebenen Welt ist die Fähigkeit, große Datenmengen effizient zu verarbeiten, eine Schlüsselkompetenz. Im Lab 3 des Kurses DAT 5566 Big Data and Cloud Computing lernst du, wie man mit Linux-Kommandozeilenwerkzeugen und Big-Data-Plattformen wie Hive und Impala arbeitet. Dieses Tutorial führt dich Schritt für Schritt durch typische Aufgaben – von der Dateninspektion bis zur Bereinigung. Ob du nun ein Big Data Tutorial für Studenten suchst oder deine Cloud Computing Fähigkeiten ausbauen möchtest, dieser Leitfaden hilft dir, die Konzepte hinter den Aufgaben zu verstehen.

Teil 1: Linux-Befehle für die Datenvorverarbeitung

1.1 Duplikate erkennen mit VIN-Check

Bevor du mit Analysen beginnst, musst du sicherstellen, dass der Datensatz keine doppelten Einträge enthält. Die Fahrgestellnummer (VIN) ist ein eindeutiger Identifier. Mit dem Befehl awk kannst du prüfen, ob VINs mehrfach vorkommen:

awk -F',' 'NR>1 {count[$1]++} END {for (vin in count) if (count[vin]>1) print vin, count[vin]}' CarSale.csv

Dieser Befehl zählt das Vorkommen jeder VIN und gibt nur die aus, die mehr als einmal erscheinen. Falls keine Ausgabe erscheint, sind alle Einträge eindeutig. Diese Methode ist ein grundlegender Bestandteil der Datenbereinigung mit Linux.

1.2 Die ältesten Fahrzeuge auf dem Markt

Um die fünf Autos mit den meisten Tagen auf dem Markt zu finden, kombinierst du sort und head. Angenommen, die Spalte für Tage auf dem Markt ist Spalte 7 (je nach Datei anpassen):

awk -F',' 'NR>1 {print $7, $2, $3}' CarSale.csv | sort -t',' -k1 -rn | head -5

Füge Header hinzu, indem du echo verwendest. Das Ergebnis zeigt dir die Fahrzeuge mit der längsten Standzeit – nützlich für Marktanalyse mit Shell-Skripten.

1.3 Durchschnittspreis mit AWK berechnen

Der Durchschnittspreis aller Fahrzeuge wird mit awk ermittelt:

awk -F',' 'NR>1 {sum+=$5; count++} END {print "Average Price: ", sum/count}' CarSale.csv

Erweitere dies, um den Durchschnittspreis pro Jahr zu berechnen:

awk -F',' 'NR>1 {year=$4; sum[year]+=$5; count[year]++} END {for (y in sum) print y, sum[y]/count[y], count[y]}' CarSale.csv | sort -k1

Diese Big Data Analyse mit AWK ist schnell und effizient, auch bei großen Dateien.

1.4 Daten filtern und reduzieren

Um nur bestimmte Spalten und Fahrzeuge ab Baujahr 2000 zu behalten, nutze cut und awk:

awk -F',' 'NR==1 || $4>=2000 {print $1, $2, $4, $12, $13, $15, $18, $19, $23}' CarSale.csv > CarSale_cleaned.csv

Dies erzeugt eine kleinere Datei für die weitere Verarbeitung in Hive.

Teil 2: Datenimport in Hive/Impala

2.1 Datei in HDFS hochladen

Zunächst lädst du die bereinigte CSV-Datei in HDFS:

hdfs dfs -put CarSale_cleaned.csv /user/hive/warehouse/

Dann erstellst du eine Hive-Tabelle. Der Tabellenname sollte eure Gruppen-IDs enthalten, z.B. 111111_222222_carsale. Die Tabellendefinition muss die Spalten der Datei widerspiegeln:

CREATE TABLE 111111_222222_carsale (vin STRING, make STRING, year INT, ...) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

Lade die Daten mit LOAD DATA INPATH in die Tabelle. Dies ist ein typischer Hive Datenimport Workflow.

Teil 3: Hive/Impala Abfragen

3.1 Max, Min und Durchschnitt der Tage auf dem Markt pro Karosserietyp

Mit einer SQL-ähnlichen Abfrage in Hive oder Impala:

SELECT body_type, MAX(days_on_market), MIN(days_on_market), AVG(days_on_market) FROM 111111_222222_carsale WHERE body_type IS NOT NULL GROUP BY body_type;

Diese Hive SQL Abfrage zeigt dir, welche Karosserietypen länger auf dem Markt bleiben.

3.2 Durchschnittspreis und Anzahl pro Farbe und Zustand

Um die häufigsten Kombinationen zu finden:

SELECT color, condition, AVG(price), COUNT(*) as cnt FROM 111111_222222_carsale GROUP BY color, condition HAVING cnt > 100 ORDER BY cnt DESC;

Die Kombination mit der höchsten Anzahl ist die am meisten verfügbare. Dies ist ein Beispiel für Big Data Aggregation mit Impala.

3.3 Anzahl, Durchschnitts- und Maximalpreis pro Hersteller, Modell und Zustand

Verwende eine CASE-Anweisung, um den Zustand zu kennzeichnen:

SELECT make, model, CASE WHEN condition='New' THEN 'New' ELSE 'Used' END as condition, COUNT(*) as cnt, AVG(price), MAX(price) FROM 111111_222222_carsale GROUP BY make, model, condition HAVING cnt > 250;

Solche komplexen Hive Abfragen sind typisch für Data-Warehouse-Analysen.

Teil 4: Aufräumen

Nach der Analyse solltest du die erstellte Tabelle löschen und die Dateien entfernen:

DROP TABLE 111111_222222_carsale; hdfs dfs -rm /user/hive/warehouse/CarSale_cleaned.csv; rm CarSale_cleaned.csv

Dies stellt sicher, dass keine temporären Daten zurückbleiben – ein wichtiger Schritt für Datenhygiene in der Cloud.

Fazit: Vom Linux-Befehl zur Cloud-Analyse

In diesem Tutorial hast du gesehen, wie man mit Linux für Big Data, Hive Tabellen erstellen und Impala Abfragen einen kompletten Datenverarbeitungs-Workflow umsetzt. Diese Fähigkeiten sind nicht nur für das Lab 3 relevant, sondern auch für reale Anwendungen in der Cloud Computing Praxis. Indem du die Konzepte hinter den Befehlen verstehst, kannst du sie auf andere Datensätze übertragen – sei es im Data Engineering oder in der Datenanalyse im Unternehmen.

Denke daran: Der Schlüssel liegt im Verständnis der Daten und der Werkzeuge. Übe mit verschiedenen Datensätzen, um deine Big Data Kompetenzen zu vertiefen. Viel Erfolg bei deiner Assignment-Abgabe!