Hoe installeer je Hadoop op UbuntuDownload- en installatiestappen

โšก Slimme samenvatting

Apache Hadoop installeren op Ubuntu Het proces bestaat uit twee stappen: eerst de release uitpakken via een speciaal systeemaccount met SSH zonder wachtwoord, vervolgens vier XML-bestanden bewerken voordat HDFS wordt geformatteerd en het cluster met รฉรฉn node wordt gestart.

  • ๐Ÿ”˜ Vereisten: Een hardlopende Ubuntu machine en een ondersteunde Java De ontwikkelingskit moet eerst geรฏnstalleerd zijn.
  • โ˜‘๏ธ Speciaal account: Maak de hadoop_groep en het hduser_account aan, zodat daemons nooit onder uw inloggebruiker worden uitgevoerd.
  • โœ… SSH zonder wachtwoord: Hadoop start daemons via SSH, dus ssh localhost moet zonder wachtwoordprompt succesvol zijn.
  • ๐Ÿงช Vier configuratiebestanden: hadoop-env.sh, core-site.xml, mapred-site.xml en hdfs-site.xml bevatten alle instellingen die in deze handleiding worden gewijzigd.
  • ๏ธ Eerste start: Formatteer de NameNode eenmaal, voer vervolgens start-dfs.sh en start-yarn.sh uit en bevestig met jps dat vijf daemons actief zijn.
  • ๐Ÿงญ Versieafwijking: De schermafbeeldingen zijn gemaakt met Hadoop 2.2.0, dus controleer de release, poorten en eigenschapsnamen aan de hand van Hadoop 3.x.

Hoe installeer je Hadoop op Ubuntu

In deze handleiding nemen we je stap voor stap mee door het proces van het installeren van Apache Hadoop op een Linux-systeem.UbuntuDit is een proces in twee stappen: eerst de release downloaden en installeren, en vervolgens configureren.

Er zijn twee voorwaarden:

Opmerkingen over Hadoop 3.x-versies voor deze configuratie

De schermafbeeldingen in deze handleiding zijn gemaakt met Hadoop 2.2.0. De volgorde van de stappen is ongewijzigd in de huidige versies, maar een aantal namen en standaardwaarden zijn gewijzigd. Controleer de onderstaande tabel voordat u een opdracht letterlijk overneemt.

Instelling of stap In deze handleiding (Hadoop 2.x) Huidige Hadoop 3.x
Release-archief hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gz, de eerste stabiele versie 3.5, uitgebracht op 2 april 2026
Standaard bestandssysteemeigenschap fs.default.name in het proza, fs.defaultFS in de XML fs.defaultFS enkel en alleen; fs.default.name is verouderd
MapReduce-eigenschap mapreduce.jobtracker.address mapreduce.framework.name ingesteld op yarnde baanTracker bestaat niet meer zodra YARN het werk inplant.
mapred-site.xml Gekopieerd van mapred-site.xml.template Schepen in etc/hadoop dat is al gebeurd, dus de kopieerstap is niet nodig.
NameNode web UI-poort 50070 9870
Java Java 6 of Java 7 Java 8 of Java 11

Al het andere in deze handleiding werkt op dezelfde manier in Hadoop 3: het speciale account, de SSH-sleutel, de vier configuratiebestanden en de start- en stopscripts.

Deel 1) Download en installeer Hadoop

Stap 1) Voeg een Hadoop-systeemgebruiker toe

Voeg een Hadoop-systeemgebruiker toe met behulp van de onderstaande opdracht.

sudo addgroup hadoop_

Terminal voert sudo addgroup hadoop_ uit

sudo adduser --ingroup hadoop_ hduser_

adduser prompt verzamelt de gegevens voor hduser_

Voer uw wachtwoord, naam en andere gegevens in.

NOTITIE: Tijdens het installatie- en configuratieproces bestaat de mogelijkheid dat de onderstaande fout optreedt.

โ€œhduser staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd.โ€

Foutmelding: hduser staat niet in het sudoers-bestand.

Deze fout kan worden verholpen door in te loggen als root-gebruiker.

Overschakelen naar de root-gebruiker in de terminal

Voer het commando uit

sudo adduser hduser_ sudo

De gebruiker hduser_ toevoegen aan de sudo-groep

Re-login as hduser_

Opnieuw inloggen als hduser_

Stap 2) Configureer SSH

Om knooppunten in een cluster te beheren, heeft Hadoop SSH-toegang nodig.

Wissel eerst van gebruiker en voer de volgende opdracht in

su - hduser_

Gebruiker wisselen met su - hduser_

Met deze opdracht wordt een nieuwe sleutel gemaakt.

ssh-keygen -t rsa -P ""

ssh-keygen genereert een RSA-sleutelpaar voor hduser_

Schakel SSH-toegang tot de lokale machine in met behulp van deze sleutel.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Het bestand id_rsa.pub toevoegen aan het authorized_keys-bestand.

Test nu de SSH-configuratie door als gebruiker 'hduser_' verbinding te maken met localhost.

ssh localhost

Succesvolle ssh localhost-sessie voor hduser_

Let op: Als je de onderstaande foutmelding ziet als reactie op 'ssh localhost', is de kans groot dat SSH niet beschikbaar is op dit systeem.

SSH-verbinding met localhost mislukt met een foutmelding 'verbinding geweigerd'.

Om dit op te lossen โ€“

SSH opschonen met behulp van,

sudo apt-get purge openssh-server

Het is raadzaam om de systeembestanden te wissen voordat u met de installatie begint.

apt-get purge verwijdert een bestaand openssh-serverpakket.

Installeer SSH met behulp van de opdracht-

sudo apt-get install openssh-server

apt-get installeert het openssh-serverpakket

Stap 3) Download Hadoop

De volgende stap is het downloaden van Hadoop van de Apache Hadoop releasespagina.

Apache Hadoop-releasepagina met een overzicht van beschikbare versies

Selecteer Stabiel

Directorylijst voor de stabiele Hadoop-release

Selecteer het tar.gz-bestand (niet het bestand dat eindigt op src).

Het Hadoop tar.gz-binair bestand kiezen in plaats van het src-archief.

Zodra de download is voltooid, navigeer je naar de map waarin het tar-bestand zich bevindt.

Terminal geopend in de map waarin het gedownloade tar-bestand zich bevindt.

Enter,

sudo tar xzf hadoop-2.2.0.tar.gz

Extrachet Hadoop-tarball-bestand uitpakken met tar xzf

Hernoem nu hadoop-2.2.0 naar hadoop.

sudo mv hadoop-2.2.0 hadoop

De naam van de ex wijzigentracted hadoop-2.2.0 map naar hadoop

Geef de map ten slotte door aan het nieuwe account.

sudo chown -R hduser_:hadoop_ hadoop

chown wijst de hadoop-map toe aan hduser_ en hadoop_.

Vervang de versie die je daadwerkelijk hebt gedownload door hadoop-2.2.0 in de drie bovenstaande commando's.

Deel 2) Hadoop configureren

Stap 1) Wijzig het bestand ~/.bashrc

Voeg de volgende regels toe aan het einde van het bestand ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

bashrc-bestand met de exports HADOOP_HOME, JAVA_HOME en PATH eraan toegevoegd

Laad nu deze omgevingsconfiguratie in met behulp van de onderstaande opdracht.

. ~/.bashrc

Het laden van bashrc zodat de nieuwe omgevingsvariabelen van kracht worden.

Stap 2) Configuraties met betrekking tot HDFS

Stel JAVA_HOME in het bestand $HADOOP_HOME/etc/hadoop/hadoop-env.sh in, zoals hieronder weergegeven.

De standaard JAVA_HOME-regel in hadoop-env.sh

hadoop-env.sh geopend in de editor, waarbij de JAVA_HOME-export werd weergegeven.

Met

hadoop-env.sh JAVA_HOME vervangen door de werkelijke waarde Java installatie pad

Er zijn twee parameters in $HADOOP_HOME/etc/hadoop/core-site.xml die ingesteld moeten worden.

1. 'hadoop.tmp.dir' โ€“ Wordt gebruikt om een โ€‹โ€‹map op te geven die door Hadoop wordt gebruikt voor het opslaan van gegevensbestanden.

2. 'fs.defaultFS' โ€“ Hiermee wordt het standaardbestandssysteem gespecificeerd. De oudere naam voor dezelfde eigenschap, 'fs.default.name', is verouderd.

Om deze parameters in te stellen, opent u core-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

Het openen van core-site.xml met gedit

Kopieer de onderstaande regels tussen de tags.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

core-site.xml bevat de eigenschappen hadoop.tmp.dir en fs.defaultFS.

Navigeer naar de map $HADOOP_HOME/etc/hadoop.

Terminal in de Hadoop etc/hadoop configuratiemap

Maak nu de map aan die in core-site.xml wordt genoemd.

sudo mkdir -p <Path of Directory used in above setting>

mkdir -p maakt het pad hadoop.tmp.dir aan

Verleen machtigingen aan de map.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

chown geeft hduser_ het eigendom van de tijdelijke map

sudo chmod 750 <Path of Directory created in above step>

chmod 750 toegepast op de tijdelijke map

Stap 3) MapReduce-configuratie

Voordat we met deze configuraties beginnen, stellen we eerst het HADOOP_HOME-pad in.

sudo gedit /etc/profile.d/hadoop.sh

En kom binnen

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

hadoop.sh profielscript exporteert HADOOP_HOME

Volgende invoer

sudo chmod +x /etc/profile.d/hadoop.sh

chmod +x maakt het hadoop.sh profielscript uitvoerbaar

Sluit de terminal af en start hem opnieuw op.

Typ `echo $HADOOP_HOME` om het pad te controleren.

echo $HADOOP_HOME print het geconfigureerde installatiepad

Kopieer nu bestanden

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

Mapred-site.xml.template kopiรซren naar mapred-site.xml

Open het bestand mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

Het openen van mapred-site.xml met gedit

Voeg de onderstaande instellingen toe tussen de En labels.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

mapred-site.xml bevat de MapReduce-taak tracker eigendom

Open $HADOOP_HOME/etc/hadoop/hdfs-site.xml zoals hieronder,

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Het openen van hdfs-site.xml met gedit

Voeg de onderstaande instellingen toe tussen de En tags.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

hdfs-site.xml bevat de eigenschappen dfs.replication en dfs.datanode.data.dir.

Maak de map aan die in de bovenstaande instellingen is opgegeven.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

mkdir -p maakt de DataNode-gegevensmap aan

Vervolgens moet je het eigendom en de benodigde rechten verlenen.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

chown verleent hduser_ het eigendom van de DataNode-gegevensmap

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

chmod 750 toegepast op de DataNode-gegevensmap

Stap 4) HDFS formatteren

Voordat we Hadoop voor de eerste keer starten, formatteer je HDFS met behulp van de onderstaande opdracht.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format output formatting the new file system

Stap 5) Start het Hadoop-cluster met รฉรฉn knooppunt

Start het Hadoop-cluster met รฉรฉn knooppunt met behulp van de onderstaande opdracht.

$HADOOP_HOME/sbin/start-dfs.sh

De uitvoer van bovenstaande opdracht wordt hieronder weergegeven.

start-dfs.sh output starting the NameNode and DataNode

Start vervolgens de YARN-daemons.

$HADOOP_HOME/sbin/start-yarn.sh

start-yarn.sh output starting ResourceManager and NodeManager

Controleer met behulp van de 'jps'-tool of alle Hadoop-gerelateerde processen actief zijn.

jps-uitvoer met een lijst van de vijf actieve Hadoop-daemons

Als Hadoop succesvol is opgestart, zou de jps-uitvoer de volgende gegevens moeten weergeven: NameNode, NodeManager, ResourceManager, SecondaryNameNode en DataNode.

Stap 6) Stopping Hadoop

Schakel het cluster in omgekeerde volgorde uit.

$HADOOP_HOME/sbin/stop-dfs.sh

De uitvoer van stop-dfs.sh laat zien dat de HDFS-daemons worden afgesloten.

$HADOOP_HOME/sbin/stop-yarn.sh

stop-yarn.sh output shutting down the YARN daemons

Hoe controleer je of Hadoop actief is en hoe los je veelvoorkomende fouten op?

De jps-uitvoer bevestigt dat de processen zijn gestart, maar niet dat het cluster bruikbaar is. Vier extra controles geven uitsluitsel over die kwestie.

  • Open de NameNode-webinterface op http://localhost:9870 (poort 50070 op Hadoop 2.x) en bevestig dat het overzicht รฉรฉn actieve node rapporteert.
  • Open de ResourceManager-interface op http://localhost:8088 om te bevestigen dat YARN de NodeManager heeft geaccepteerd.
  • lopen hdfs dfsadmin -report voor capaciteit, actieve DataNodes en eventuele ondergerepliceerde blokken.
  • Schrijf iets: hdfs dfs -mkdir /test gevolgd door hdfs dfs -ls / bewijst dat de naamruimte wijzigingen accepteert.

De meeste mislukkingen bij een eerste poging vallen in รฉรฉn van de vijf categorieรซn.

Symptoom Veroorzaken Bepalen
JAVA_HOME is niet ingesteld en kon niet worden gevonden. De variabele wordt geรซxporteerd in .bashrc, maar niet in hadoop-env.sh. Stel ook het absolute JDK-pad in in hadoop-env.sh.
Toegang geweigerd (publickey,password) op ssh localhost authorized_keys ontbreekt of is te tolerant. Voeg id_rsa.pub opnieuw toe en voer vervolgens chmod 600 uit op ~/.ssh/authorized_keys.
Verbinding geweigerd op poort 22 openssh-server is niet geรฏnstalleerd of draait niet Installeer openssh-server en start de ssh-service.
DataNode ontbreekt in jps na een herformattering Cluster ID-mismatch tussen de geformatteerde NameNode en de oude DataNode-directory Leeg de map dfs.datanode.data.dir en formatteer deze vervolgens opnieuw.
start-dfs.sh: opdracht niet gevonden HADOOP_HOME en PATH werden nooit geladen in de huidige shell. Voer . ~/.bashrc uit of open een nieuwe terminal.

Veelgestelde vragen

Elke actief ondersteunde Ubuntu De LTS-release werkt, inclusief 22.04 en 24.04. Hadoop 3.x is gebouwd en getest tegen Java 8 en Java 11. Installeer dus een van die JDK's; nieuwere JDK's worden niet volledig ondersteund en oudere JDK's ook niet. Java 7 builds zijn niet langer van toepassing.

De scripts start-dfs.sh en start-yarn.sh starten alle daemons via SSH, zelfs als de enige host localhost is. Zonder een wachtwoordloze sleutel blijven de scripts hangen bij een wachtwoordprompt en start er geen daemon op.

hadoop.tmp.dir is het basispad voor tijdelijke opslag van waaruit Hadoop andere tijdelijke locaties afleidt. dfs.datanode.data.dir is de locatie waar een DataNode de daadwerkelijke blokbestanden bewaart. Wijs de tweede locatie altijd naar de permanente opslag, nooit naar /tmp, anders verdwijnen de blokken bij een herstart.

Formatteer de DataNode รฉรฉn keer, vรณรณr de eerste opstart. Het opnieuw uitvoeren van de formatteeropdracht wist de namespace en laat bestaande DataNode-directory's achter met een oudere cluster-ID. Dit is de reden waarom de DataNode zich vervolgens niet kan registreren en uit de jps-uitvoer verdwijnt.

Ja, hoewel Windows Hiervoor zijn de native binaire bestanden winutils.exe en hadoop.dll nodig voor de betreffende release. De meeste mensen vermijden dit door hetzelfde te doen: Ubuntu Stappen binnen WSL 2, dat zich gedraagt โ€‹โ€‹als een normale Linux-host.

Voor leerdoeleinden is het zeker aan te raden: een vooraf geconfigureerde image slaat het aanmaken van gebruikers, SSH-sleutels en het bewerken van XML-bestanden over. Handmatige installatie is echter nog steeds de moeite waard, omdat het laat zien welk bestand welke instelling beheert wanneer een echt cluster problemen vertoont.

Machine learning-modellen op basis van NameNode- en YARN-metrics voorspellen capaciteitslimieten, sporen scheve taakverdelingen op en signaleren defecte schijven vroegtijdig. Verschillende platforms bevelen ook automatisch containergroottes aan, waardoor veel van de handmatige afstemming die voorheen nodig was, overbodig wordt.

Copilot maakt snel eigenschappenblokken voor core-site.xml en hdfs-site.xml aan en onthoudt de exacte spelling. Controleer elke suggestie aan de hand van de documentatie voor uw release, aangezien er vaak verouderde eigenschappen zoals mapreduce.job worden voorgesteld.tracker.address of fs.default.name.

Vat dit bericht samen met: