50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
Noch 13 Min.
Datenbanken & Analysen

Hadoop auf Ubuntu installieren: Eine umfassende Anleitung

Pius Bodenmann By Pius Bodenmann 13 Min. Lesezeit Aktualisiert am 1. Mai 2024
So installierst du Hadoop auf Ubuntu Linux

Sobald ein Unternehmen oder ein anderer computerbetriebener Betrieb wächst und mehr als einen Rechner benötigt, werden schnell mehrere Computer zu einem gemeinsamen Netzwerk zusammengeschlossen, um die Arbeitslast effizienter zu verteilen. Das ist heute so selbstverständlich geworden, dass in Bereichen wie Data Science nahezu alle Aufgaben von vernetzten Rechnern erledigt werden. Diese Methode steigert zwar die Leistung bei rechenintensiven Aufgaben erheblich, bringt aber auch erhebliche Komplexität mit sich: Jeder Rechner muss einzeln konfiguriert und das gesamte Netzwerk während des Betriebs verwaltet werden. Genau hier kommen Programme wie Hadoop ins Spiel.

Hadoop ist eine Sammlung von Tools und Programmen, die von Apache veröffentlicht wurde. Sie ermöglicht es, mehrere Computer effizient zu einem Netzwerk zusammenzuschließen. In diesem Artikel stelle ich Hadoop vor, beleuchte typische Anwendungsfälle, gehe auf Vor- und Nachteile ein und gebe einen Überblick über die zugrunde liegende Architektur. Anschließend folgt eine Schritt-für-Schritt-Anleitung zur Installation von Hadoop auf Ubuntu 20.04.

Was ist Apache Hadoop?

Hadoop, eine von Apache entwickelte Tool-Sammlung, verändert seit über 15 Jahren die Art, wie Netzwerke aufgebaut und betrieben werden. Nutzer können die vorhandene Rechenleistung ihrer Systeme für anspruchsvolle Aufgaben nutzen, ohne teure Hardware-Upgrades durchführen zu müssen. Die Suite besteht aus vier Modulen: HDFS, YARN, MapReduce und Hadoop Common, die jeweils für bestimmte Anwendungsfälle konzipiert sind.

Der entscheidende Vorteil von Hadoop liegt darin, dass sowohl Einzelpersonen als auch Organisationen ihre vorhandene Rechenkapazität bündeln können, um rechenintensive Aufgaben gemeinsam zu bewältigen. Ohne Hadoop wären sie gezwungen, kontinuierlich in leistungsfähigere Hardware zu investieren.

Hadoop-Anwendungsfälle

Wir wissen nun, was Hadoop ist. Aber wie sehen die konkreten Anwendungsfälle in der Praxis aus? Ein Programm auf dem Papier zu verstehen ist eine Sache, sein tatsächliches Potenzial im produktiven Einsatz zu erkennen eine andere. Daher zeige ich hier einige Beispiele, bevor wir mit dem Hadoop-Tutorial fortfahren.

Risikoanalyse

Wie bereits erwähnt, ermöglicht Hadoop, die Rechenleistung mehrerer Systeme in einem gemeinsamen Netzwerk zu bündeln, um große Datenmengen effizient zu verarbeiten und schneller als üblich zu analysieren. In jedem Unternehmen gibt es Risiken, die bewertet und berechnet werden müssen. Hadoop ist hierbei besonders nützlich. Tatsächlich setzen viele renommierte Krankenhäuser Hadoop ein, um die Risiken verschiedener Behandlungen zu analysieren und mögliche Ergebnisse sowie Statistiken für ihre Patienten abzuschätzen.

Sicherheitsverletzungen erkennen

Je mehr Geräte und Verbindungen in einem Netzwerk oder Unternehmen genutzt werden, desto mehr potenzielle Sicherheitslücken entstehen. Eine der zentralen Stärken von Hadoop ist die Fähigkeit, den gesamten Betrieb zu überblicken, indem große Datenmengen analysiert und kritische Schwachstellen im System identifiziert werden.

Bewertungsmapping

Viele Unternehmen stützen sich auf Kundenfeedback, um ihre Produkte zu verbessern oder neue Marktstrategien zu entwickeln. Während ein Mensch sehr lange braucht, um eine umfangreiche Bewertungsdatenbank manuell auszuwerten, liefert Hadoop durch den Einsatz mehrerer vernetzter Systeme deutlich schnellere Ergebnisse.

Marktanalyse

Apropos Marktstrategien: Die oben beschriebene Auswertung von Bewertungen ist vergleichsweise bescheiden gegenüber dem Aufwand, der nötig ist, um das Marktpotenzial eines neuen Produkts zu analysieren. Auch hier spielt Hadoop seine Stärken aus, denn selbst kleinere, aufstrebende Unternehmen können mithilfe mehrerer Computer in kurzer Zeit eine fundierte Marktanalyse durchführen.

Log-Dateien auswerten

Ein weiterer Bereich, der mit dem Wachstum eines Unternehmens zunehmend komplexer wird, ist die eingesetzte Software. Je mehr Anwendungen im Einsatz sind, desto mehr potenzielle Fehler und Problemstellen entstehen. Die Verwaltung von Log-Dateien und die Behebung von Fehlern bindet erhebliche Ressourcen. Mit wenigen einfachen Protokollen kann ein Unternehmen Hadoop nutzen, um Log-Dateien schnell zu analysieren, Fehler aufzuspüren und zu beheben.

Es gibt noch viele weitere Anwendungsfälle für Hadoop, aber um den Fokus des Artikels nicht zu verlieren, werden wir an dieser Stelle nicht weiter darauf eingehen.

Hadoop-Architektur im Überblick

Angenommen, Sie haben bereits von Hadoop und seinen Anwendungsfällen gehört. Falls nicht, hat Ihnen dieser Artikel bisher einen guten Überblick gegeben. Jetzt geht es darum, tiefer einzutauchen: Was steckt eigentlich in Hadoop, und wie arbeiten die einzelnen Komponenten zusammen? Wie bereits erwähnt, gibt es vier Hauptschichten in Hadoop. In diesem Teil des Tutorials befassen wir uns mit HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce und Hadoop Common. Da Hadoop Common vergleichsweise wenige erklärungsbedürftige Funktionen hat, sind die wesentlichen Bestandteile bekannt als Zookeeper. In diesem Abschnitt erkläre ich die Hadoop-Architektur und das Ökosystem mit seinen vier Bereichen in verständlichen Begriffen, bevor wir zur Installation von Hadoop auf Ubuntu 20.04 übergehen.

HDFS

HDFS bildet im Hadoop-Ökosystem das zentrale Speichersystem, das alle Hadoop-Komponenten und -Anwendungen zum Lesen, Übertragen und Speichern von Daten nutzen. Ein wichtiger Unterschied: Hadoop selbst ist ein Open-Source-Programm, während HDFS das Dateisystem ist, das alle grundlegenden Operationen eines Hadoop-Clusters übernimmt. HDFS ist ein besonders zuverlässiges Dateisystem, das Datenpakete in 128-MB-Blöcke aufteilt und für sequenzbasierte Operationen optimiert.

Die zentrale Aufgabe von HDFS in der Hadoop-Software besteht darin, alle Daten als Teil eines gemeinsamen Data-Racks bereitzustellen. Über verschiedene Namenodes und sekundäre Racks lassen sich diese Daten in Teilbereiche aufteilen, um die Datenanalyse zu strukturieren. Weitere Optionen wie Journal-Racks, QJM, HA, fsimage und Edit-Log-Dateien sowie das übergeordnete Legend-Log stehen zur Verfügung, um Operationen nachzuverfolgen und weitere Aufgaben durchzuführen.

YARN

YARN ist ein weiterer zentraler Bestandteil von Hadoop. Er dient dazu, bestimmten Anwendungen im Hadoop-Ökosystem definierte Mengen an Rechenressourcen zuzuweisen. Im Kern ermöglicht YARN einen Resource Manager, der Ressourcen über verschiedene Nodes hinweg an unterschiedliche Aufgaben und Anwendungen verteilt. Ähnlich wie bei HDFS gibt es in YARN eine Übersicht, mit der sich alle zugewiesenen Ressourcen und laufenden Operationen nachverfolgen lassen. YARN ist in drei Teilbereiche untergliedert: den Resource Manager, den Application Master und den Node Manager.

Jeder dieser drei Teilbereiche erstellt pro Cluster, Anwendung bzw. Node eine eigene Instanz. Mit YARN lassen sich Ressourcen nicht nur verschiedenen Aufgaben zuweisen, sondern auch zeitlich planen, um komplexe algorithmische Workflows aufzubauen. YARN ist nicht auf seinen eigenen Bereich beschränkt: In vielen Fällen wird es zusammen mit anderen Architekturschichten wie HDFS und Zookeeper eingesetzt, um Ressourcen zuzuweisen und den Gesamtbetrieb zu überwachen.

Hadoop MapReduce

Hadoop MapReduce ist eine weitere Hauptkomponente im Hadoop-Ökosystem. Nach der Installation von Hadoop auf Ubuntu können Sie mit diesem Feature große Datenmengen verteilt über mehrere Computer analysieren. Das Prinzip: Sie übergeben dem Programm eine umfangreiche Datenmenge. Diese wird aufgeteilt, verteilt und auf den vernetzten Computern verarbeitet. Anschließend werden die Daten mithilfe sogenannter Reducer auf ihre wesentlichen Bestandteile reduziert. Jede dieser Operationen wird als Job bezeichnet.

Stellen Sie sich einen dreigliedrigen Satz vor, der als Datenmenge für MapReduce dienen soll, zum Beispiel: Bear Hunt Rabbit. Hadoop MapReduce zerlegt diesen Satz in drei einzelne Pakete mit je einem Wort, kombiniert diese dann mit ähnlichen Eingaben aus anderen Jobs und erzeugt so ein einheitliches, bereinigtes Datenpaket, das sich problemlos analysieren lässt.

Zookeeper

Zookeeper ist ein weiterer Teilbereich des Hadoop-Ökosystems, der mit der Veröffentlichung von Hadoop Version 2.0 breit eingesetzt wurde. Zookeeper koordiniert die verschiedenen Operationen, die innerhalb einer einzelnen Hadoop-Instanz ausgeführt werden. Daher wird Zookeeper fast immer zusammen mit dem Resource Manager von YARN und den verschiedenen Funktionen von HDFS eingesetzt. Sein Hauptzweck ist es, potenzielle Fehlerquellen zu erkennen und zu beheben. Dazu nutzt Zookeeper zwei Werkzeuge: ZKFailoverController und das Zookeeper Quorum.

Dabei werden die von anderen Hadoop-Komponenten verwalteten Datennodes als aktive Namenodes kategorisiert und vom Benutzer überwacht. Anschließend wird jeder dieser Namenodes in den beiden genannten Zookeeper-Teilbereichen geprüft, um Problemstellen zu identifizieren und potenzielle Ausfälle frühzeitig zu erkennen.

Hadoop auf Ubuntu 20.04 installieren – Schritt-für-Schritt-Anleitung

Nach dem Einblick in die Hadoop-Architektur kommen wir nun zum Kernstück: der Installation von Hadoop auf Ubuntu 20.04 als letztem Teil dieses Tutorials. Zunächst gehen wir auf die Voraussetzungen ein, bevor wir mit der Schritt-für-Schritt-Anleitung fortfahren. Diese Anleitung gilt auch für Ubuntu 18.04.

Voraussetzungen

Die Voraussetzungen für die Installation von Hadoop auf Ubuntu sind überschaubar. Du benötigst einen Ubuntu-Rechner mit Root-Zugriff, entweder lokal oder über einen VPS-Server erreichbar. An Software müssen Java 11 und SSH bereits installiert sein. Falls das nicht der Fall ist, führe folgende Befehle nacheinander aus:

sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y

Eine Lizenz ist nicht erforderlich, da Hadoop kostenlos und Open-Source ist. Das sind alle Voraussetzungen. Weiter zu Schritt eins.

Schritt 1: Nicht-Root-Benutzer für Hadoop anlegen

Erstelle mit folgendem Befehl einen Nicht-Root-Benutzer für Hadoop. Das ist Teil der Vorkonfiguration, die vor dem eigentlichen Download und der Installation von Hadoop notwendig ist:

sudo adduser hdoop
su - hdoop

Schritt 2: SSH-Schlüssel einrichten

Um Hadoop auf Ubuntu zu installieren, verwenden wir jetzt den eben erstellten Hadoop-Benutzer und bauen damit eine SSH-Verbindung auf. Mit diesem Befehl erzeugst du ein SSH-Schlüsselpaar und speicherst es:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

Sobald die Schlüssel erzeugt wurden, markiert die folgende Zeile sie als authorized_keys und speichert sie in deinem SSH-Verzeichnis:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Stelle mit diesem Befehl sicher, dass deine SSH-Verbindung die erforderlichen Berechtigungen hat:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Bestätige die Änderungen. Danach kannst du dich jederzeit problemlos mit dem erstellten Benutzer bei deinem localhost anmelden:

ssh localhost

Schritt 3: Hadoop auf Ubuntu herunterladen und installieren

Die Apache Hadoop-Website bietet eine Versionsübersicht mit den jeweiligen Changelogs. Wähle die gewünschte Version aus und nutze den angezeigten Link mit folgendem Befehl, um Hadoop auf Ubuntu herunterzuladen und zu installieren. Im Beispiel verwenden wir Version 3.3.6. Ersetze '3.3.6' bei Bedarf durch die neueste stabile Version:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

Nach Abschluss des Downloads führe diesen Befehl aus, um die Extraktion und Installation abzuschließen:

tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop

Schritt 4: Hadoop-Umgebung konfigurieren

Setze JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:

echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh

Schritt 5: Konfigurationsdateien bearbeiten

Trage deine Cluster-Einstellungen in Hadoops XML-Konfigurationsdateien ein.

nano /usr/local/hadoop/etc/hadoop/core-site.xml

Schritt 6: HDFS formatieren

Initialisiere den Hadoop-Dateisystem-Namespace.

/usr/local/hadoop/bin/hdfs namenode -format

Schritt 7: Hadoop-Dienste starten

Starte die HDFS- und YARN-Dienste.

/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh

Schritt 8: Installation überprüfen

Prüfe die laufenden Java-Prozesse, um sicherzustellen, dass Hadoop läuft.

jps

Schritt 9: Weboberflächen aufrufen

Öffne die NameNode- und ResourceManager-Weboberflächen von Hadoop im Browser.

NameNode: http://localhost:9870
ResourceManager: http://localhost:8088

Schritt 10: Ein MapReduce-Beispiel ausführen

Führe einen Beispiel-MapReduce-Job aus, um die Einrichtung zu überprüfen.

/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*

Schritt 11: Umgebungsvariablen setzen

Füge Hadoops bin und sbin Verzeichnisse zum System-PATH.

echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc

Das war's! Sie haben Apache Hadoop auf Ubuntu 20.04 erfolgreich konfiguriert und installiert!

Fazit

Zusammenfassend lässt sich sagen: Die Installation von Hadoop auf Ubuntu 20.04 ist ein aufwendiger Prozess, der sorgfältige Vorbereitung und die Bereitschaft erfordert, sich mit den Details der Einrichtung auseinanderzusetzen. Wer die Schritte in diesem Leitfaden befolgt, kann die Möglichkeiten von Hadoop voll ausschöpfen und seine Datenanalyse-Projekte auf ein neues Niveau heben.

Wer Hadoop nur kennenlernen und ausprobieren möchte, sollte es als Single-Node-Deployment mit eingeschränkter Distribution betreiben. Dafür ist ein VPS ideal. Cloudzy bietet eine Vielzahl verschiedener Linux VPS-Dienste darunter einen zuverlässigen Ubuntu VPS der sich in kürzester Zeit zur perfekten Hadoop-Lernumgebung konfigurieren lässt. Ab 4,95 $ pro Monat erhalten Sie Ihren eigenen Ubuntu VPS mit mehr als 12 Standorten und 24/7-Support!

ubuntu-vps Die naheliegende Wahl

Die Mehrheit der Linux-Server läuft auf Ubuntu. Warum nicht auch Ihrer? Entdecken Sie, warum Ubuntu so beliebt ist, und holen Sie sich einen optimierten Ubuntu VPS.

Jetzt Ubuntu VPS holen

Häufig gestellte Fragen

Was sind die Unterschiede zwischen HDFS und MapReduce?

Obwohl beide Module zum Hadoop-Ökosystem gehören, erfüllen sie unterschiedliche Aufgaben. HDFS ist ein verteiltes Dateisystem, das den Zugriff auf Daten ermöglicht. MapReduce hingegen ist darauf ausgelegt, große Datenmengen aufzuteilen und effizient zu analysieren.

Ist Hadoop eine Datenbank?

Hadoop ist keine Datenbank, auch wenn dieser Irrtum weit verbreitet ist. Es handelt sich vielmehr um ein verteiltes Dateisystem, das die Speicherung und Verarbeitung großer Datenmengen über ein Netzwerk verbundener Computer ermöglicht. Hadoop ist kein direkter Ersatz für ein klassisches Datenbanksystem.

Was sind die vier Hauptkomponenten von Hadoop?

Hadoop besteht aus vier Kernkomponenten: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce und Hadoop Common. Einige Quellen zählen auch ZooKeeper dazu, obwohl es offiziell nicht als Kernkomponente gilt.

Wo wird Hadoop typischerweise eingesetzt?

Hadoop wird überall dort eingesetzt, wo große Datenmengen verwaltet, gespeichert, verarbeitet und analysiert werden müssen. Die Einsatzbereiche reichen von mittelständischen Unternehmen und Krankenhäusern bis hin zu wachsenden Startups, die datengetriebene Lösungen benötigen.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Original-Symbol von MongoDB auf einem futuristischen Server, um die Installation von MongoDB auf Ubuntu zu veranschaulichen + Teaser zum Artikelinhalt + Artikeltitel + Cloudzy-Logo
Datenbanken & Analysen

MongoDB auf den drei neuesten Versionen von Ubuntu installieren (Schritt für Schritt)

Sie haben sich für MongoDB entschieden – eine gute Alternative zu MariaDB für MERN-Stack-Anwendungen, Analyseplattformen oder dokumentenbasierte Systeme – und suchen jetzt nach einer verständlichen Anleitung? Hier komm

Jim SchwarzJim Schwarz 12 Min. Lesezeit
Cleveres Datenmanagement für Ihr Unternehmen: Cloud-ähnliche Speicher- und Backup-Strategien mit VPS
Datenbanken & Analysen

Cleveres Datenmanagement für Ihr Unternehmen: Cloud-ähnliche Speicher- und Backup-Strategien mit VPS

VPS für sicheres Unternehmensdatenmanagement ist die Strategie, die ich empfehle, sobald ein Unternehmen beschließt, Schluss mit dem Jonglieren zwischen Laptops, E-Mail-Anhängen und halb vergessenen

Rexa CyrusRexa Cyrus 7 Min. Lesezeit
Materialisierte Ansicht vs. Ansicht
Datenbanken & Analysen

Materialized View vs. View: Ihre Rolle in Datenbanken verstehen

In Datenbanksystemen speichert eine Materialized View als Datenbankobjekt die vorberechneten Ergebnisse einer Abfrage als physische Tabelle. Da die Daten tatsächlich auf dem Datenträger gespeichert sind, können komplexe

Efeu JohnsonEfeu Johnson 7 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.