Einführung
In der weiten Fläche einer kargen Wüste tobte ein heftiger Sandsturm los, der Wolken aus Sand aufwirbelte, die den Horizont verdeckten. In der Wirbelwelt des Chaos schwebte ein majestätischer Wüstenadler durch den Himmel, seine Schuppen glänzten in einem leuchtenden Goldton. Dieses mächtige Wesen hat eine entscheidende Aufgabe: Aus verstreuten Datenquellen wichtige Informationen zu sammeln und verborgene Erkenntnisse zu entdecken, die helfen könnten, den unerbittlichen Sandsturm zu bezwingen.
Ziel dieses Labs ist es, Ihnen die Fähigkeiten zu vermitteln, um die Macht von Hadoop und Hive zu nutzen, sodass Sie Daten aus mehreren Quellen verbinden und kombinieren können. Indem Sie die Kunst des Datenverbunds meistern, werden Sie in der Lage sein, komplexe Zusammenhänge aufzulösen und wertvolle Muster zu entdecken, genauso wie der Wüstenadler versucht, die Geheimnisse des tobenden Sandsturms zu entwirren.
Umgebung einrichten
In diesem Schritt bereiten Sie die erforderliche Umgebung für die Arbeit mit Hadoop und Hive vor.
- Öffnen Sie ein Terminalfenster und wechseln Sie zum Benutzer
hadoop, indem Sie den folgenden Befehl ausführen:
su - hadoop
- Navigieren Sie zum Verzeichnis
/home/hadoop, indem Sie den folgenden Befehl ausführen:
cd /home/hadoop
- Erstellen Sie ein neues Verzeichnis namens
join_lab, um Ihre Dateien zu speichern:
mkdir join_lab
- Wechseln Sie in das Verzeichnis
join_lab:
cd join_lab
Jetzt haben Sie einen speziellen Arbeitsbereich für dieses Lab.
Beispiel-Datensätze erstellen
In diesem Schritt erstellen Sie zwei Beispiel-Datensätze, um die Verknüpfungsoperationen in Hive zu üben.
- Erstellen Sie eine neue Datei namens
employees.txtmit dem folgenden Inhalt:
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
- Erstellen Sie eine weitere Datei namens
departments.txtmit dem folgenden Inhalt:
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
- Starten Sie die Hive-Shell, indem Sie den folgenden Befehl ausführen:
hive
- Laden Sie die Datensätze in Hive, indem Sie die folgenden Befehle ausführen:
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;
CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;
Diese Befehle werden zwei Hive-Tabellen, employees und departments, erstellen und die Daten aus den entsprechenden Textdateien laden.
Innere Verknüpfung durchführen
In diesem Schritt lernen Sie, wie Sie eine Inner-Join-Operation in Hive durchführen, um Daten aus den Tabellen employees und departments zu kombinieren.
Führen Sie die folgende Hive-Abfrage aus, um einen Inner Join durchzuführen:
CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_1;
Diese Abfrage verknüpft die Tabellen employees und departments basierend auf den Spalten dept und dept_name respective. Sie extrahiert die Spalten emp_id, name, dept_name und location aus dem verknüpften Ergebnis.
Die Ausgabe sollte wie folgt aussehen:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
Ein Inner Join kombiniert Zeilen aus zwei Tabellen basierend auf einer angegebenen Bedingung. In diesem Fall werden die dept-Werte aus der Tabelle employees mit den dept_name-Werten aus der Tabelle departments übereinstimmen. Das Ergebnis enthält nur die Zeilen, für die die Verknüpfungsbedingung erfüllt ist, was bedeutet, dass die dept- und dept_name-Werte übereinstimmen.
Linke äußere Verknüpfung durchführen
In diesem Schritt lernen Sie, wie Sie eine linke Außenverknüpfung in Hive durchführen.
Führen Sie die folgende Hive-Abfrage aus, um eine linke Außenverknüpfung durchzuführen:
CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_2;
Diese Abfrage führt eine linke Außenverknüpfung zwischen den Tabellen employees und departments durch. Sie enthält alle Zeilen aus der linken Tabelle (employees) und die übereinstimmenden Zeilen aus der rechten Tabelle (departments). Wenn es keine Übereinstimmung in der rechten Tabelle gibt, enthält das Ergebnis NULL-Werte für die Spalten aus der rechten Tabelle.
Die Ausgabe sollte wie folgt aussehen:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
105 Adam Wilson NULL NULL
106 Lisa Brown NULL NULL
Eine linke Außenverknüpfung gibt alle Zeilen aus der linken Tabelle (employees) und die übereinstimmenden Zeilen aus der rechten Tabelle (departments) zurück. Wenn eine Zeile in der linken Tabelle keine übereinstimmende Zeile in der rechten Tabelle hat, enthält das Ergebnis NULL-Werte für die Spalten aus der rechten Tabelle.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie mit Hadoop und Hive arbeiten, um Verknüpfungsoperationen auf Datensätzen durchzuführen. Sie haben Beispiel-Datensätze erstellt und in Hive-Tabellen geladen, was Ihnen ermöglicht, Innere und Linke Außenverknüpfungen zu üben. Indem Sie diese Verknüpfungsoperationen beherrschen, haben Sie die Fähigkeit gewonnen, Daten aus mehreren Quellen zu kombinieren und zu analysieren, genauso wie der Wüsten-Drache Informationen aus verstreuten Quellen kombiniert, um die Geheimnisse des tobenden Sandsturms zu entwirren.
Während des gesamten Labs habe ich angestrebt, eine strukturierte und immersive Lernumgebung bereitzustellen, indem ich Sie Schritt für Schritt mit klaren Anweisungen, Codebeispielen und Erklärungen begleitet habe. Die Verwendung von Prüfungen hat sichergestellt, dass Sie Ihren Fortschritt validieren und Verbesserungsbedarf identifizieren konnten. Indem ich ein Szenario entwerfen, das mit den Herausforderungen im Bereich der Datenanalyse übereinstimmt, hoffe ich, dass der Lernprozess interessanter und relevanter geworden ist.
Insgesamt hat dieses Lab Ihnen nicht nur technische Fähigkeiten in Hadoop und Hive vermittelt, sondern hat auch ein tieferes Verständnis für die Wichtigkeit der Datenintegration und -analyse bei der Lösung komplexer Probleme geschaffen. Genauso wie der Wüsten-Drache in seiner Mission beharrt, wird Ihr neues Wissen Sie befähigen, reale Datenherausforderungen mit Zuversicht und Kreativität anzugehen.



