Zodra een bedrijf of een andere operatie die computers gebruikt groeit tot het punt dat één computer niet meer volstaat, schakelen we al snel over op meerdere computers in één netwerk om de werklast efficiënter te verdelen. Dit is zo gangbaar geworden dat vrijwel alle operaties in vakgebieden zoals data science tegenwoordig worden uitgevoerd door dergelijke netwerken van computers. Hoewel zware computertaken op deze manier aanzienlijk efficiënter verlopen, is het ook een stuk complexer: je moet elke computer afzonderlijk configureren en vervolgens het hele netwerk beheren terwijl het je taken verwerkt. Programma's zoals Hadoop zijn precies hiervoor bedoeld.
- Wat is Apache Hadoop?
- Toepassingen van Hadoop
- Overzicht van de Hadoop-architectuur
- Hadoop installeren op Ubuntu 20.04 - Stap voor stap
- Vereisten
- Stap 1: Maak een niet-root gebruiker aan voor Hadoop
- Stap 2: SSH-sleutels instellen
- Stap 3: Hadoop downloaden en installeren op Ubuntu
- Stap 4: De Hadoop-omgeving configureren
- Stap 5: Configuratiebestanden bewerken
- Stap 6: HDFS formatteren
- Stap 7: Hadoop-services starten
- Stap 8: Installatie verifiëren
- Stap 9: Webinterfaces openen
- Stap 10: Een MapReduce-voorbeeld uitvoeren
- Stap 11: Omgevingsvariabelen instellen
- Conclusie
- Veelgestelde vragen
Hadoop is een pakket tools en programma's, uitgebracht door Apache, waarmee je een groot aantal computers efficiënt en eenvoudig tot één netwerk kunt samenvoegen. In dit artikel bespreek ik Hadoop: de toepassingen, de voor- en nadelen en een overzicht van de geavanceerde architectuur. Daarna volgt een stapsgewijze handleiding voor het installeren van Hadoop op Ubuntu 20.04, waarmee deze Hadoop-tutorial van 2024 wordt afgerond.
Wat is Apache Hadoop?
Hadoop, een pakket tools aangedreven door Apache, verandert al meer dan 15 jaar de manier waarop netwerken worden opgezet en gebruikt. Met Hadoop haal je meer uit je bestaande rekenkracht, zodat je veeleisende taken kunt uitvoeren zonder dure hardware-upgrades. Het pakket bestaat uit vier modules: HDFS, YARN, MapReduce en Hadoop Common, elk ontworpen voor specifieke toepassingen.
De kracht van Hadoop zit in de slimme manier waarop het bestaande rekenkracht bundelt. Individuen en organisaties kunnen hun huidige computers samenvoegen tot één geheel dat zware rekentaken aankan. Zonder Hadoop zou je al snel gedwongen zijn om steeds krachtigere en duurdere machines aan te schaffen.
Toepassingen van Hadoop
Nu we weten wat Hadoop is, rijst de vraag: hoe vertalen de toepassingen zich naar de praktijk? Een programma op papier begrijpen is nuttig, maar dat vervangt nooit de ervaring van het in actie zien binnen een serieuze omgeving. Daarom geef ik hier een aantal concrete voorbeelden, voordat we verder gaan met de Hadoop-tutorial.
Risicoanalyse
Zoals eerder vermeld, stelt Hadoop je in staat de rekenkracht van meerdere computersystemen te bundelen in één netwerkeenheid, zodat je grote hoeveelheden data efficiënt kunt verwerken en sneller dan gebruikelijk kunt analyseren. Elk bedrijf heeft te maken met risico's die geanalyseerd en gekwantificeerd moeten worden. Hadoop is daarvoor bijzonder geschikt. Zo worden in gerenommeerde ziekenhuizen de risico's van verschillende behandelingen geanalyseerd en worden de mogelijke uitkomsten en statistieken voor patiënten in kaart gebracht. Lees hier meer over de rol van Hadoop in de gezondheidszorg.
Beveiligingslekken detecteren
Naarmate het aantal apparaten en netwerkverbindingen binnen een organisatie toeneemt, neemt ook het risico op beveiligingslekken toe. Een van de belangrijkste toepassingen van Hadoop is het analyseren van grote datasets om de volledige werking van een systeem in kaart te brengen en potentiële kwetsbaarheden te signaleren.
Beoordelingen Toewijzing
Veel bedrijven vertrouwen op klantbeoordelingen om hun producten te verbeteren of nieuwe marktstrategieën te ontwikkelen. Waar een mens uren bezig is met het doornemen van een grote hoeveelheid reviews, verwerkt Hadoop diezelfde data in een fractie van de tijd dankzij de gebundelde rekenkracht van het netwerk.
Marktanalyse
Als het gaat om marktstrategieën, verbleekt het analyseren van reviews bij de enorme hoeveelheid data die nodig is om de marktpotentie van een nieuw product te beoordelen. Dit is een ander sterk punt van Hadoop: zelfs kleinere, groeiende bedrijven kunnen de markt efficiënt analyseren met een beperkt aantal computers, in een aanvaardbare tijdspanne.
Logbestanden analyseren
Naarmate bedrijven groeien, neemt ook het aantal softwaretoepassingen dat ze gebruiken toe. Meer software betekent meer potentiële bugs en problemen, en dat vereist iemand die de logbestanden bijhoudt en issues oplost. Dat kost veel tijd, maar met de juiste protocollen kan Hadoop logbestanden snel doorzoeken, bugs identificeren en verhelpen.
Er zijn tal van andere toepassingen voor Hadoop, maar om de focus van dit artikel te bewaren, gaan we daar verder niet op in.
Overzicht van de Hadoop-architectuur
Stel dat je al hebt gehoord over Hadoop en de toepassingen ervan. Of misschien heeft dit artikel je daar tot nu toe van op de hoogte gesteld. Hoe dan ook: nu is het tijd om echt te begrijpen waaruit Hadoop bestaat en hoe de verschillende onderdelen samenwerken. Zoals eerder genoemd, heeft Hadoop vier hoofdlagen. In dit deel van de Hadoop-tutorial bespreken we HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce en Hadoop Common. Omdat Hadoop Common relatief weinig uitleg behoeft, staan de kernconcepten ervan bekend als Zookeeper. In dit gedeelte leg ik de geavanceerde Hadoop-architectuur en het ecosysteem, met de vier secties, in begrijpelijke termen uit, voordat we overgaan naar de installatie van Hadoop op Ubuntu 20.04.
HDFS
HDFS vormt binnen het Hadoop-ecosysteem het centrale opslagsysteem dat door alle Hadoop-onderdelen en -toepassingen wordt gebruikt voor het opvragen, overdragen en opslaan van data. Belangrijk verschil: Hadoop zelf is een open-sourceprogramma, maar HDFS is het bestandssysteem dat alle onderliggende bewerkingen van een Hadoop-cluster aanstuurt. HDFS is een bijzonder veerkrachtig bestandssysteem dat databatches opsplitst in blokken van 128 MB en deze optimaliseert voor sequentiële bewerkingen.
De primaire taak van HDFS binnen Hadoop is het aanbieden van alle data als onderdeel van een centrale datarak, die vervolgens via verschillende namenodes en secundaire racks kan worden opgesplitst in subsecties voor het organiseren van je data-analyseoperatie. Daarnaast kun je gebruik maken van opties zoals Journal-racks, QJM, HA, fsimage en bewerkingslogbestanden, en het algemene legendalogboek om taken bij te houden en uit te voeren.
YARN
YARN is een ander uitvoerend onderdeel van Hadoop dat wordt gebruikt om specifieke hoeveelheden rekenbronnen toe te wijzen aan toepassingen binnen het Hadoop-ecosysteem. Het stelt je in staat een resource manager in te zetten voor clients, zodat bronnen via een set nodes aan verschillende taken en toepassingen worden verdeeld. Net als in HDFS beschikt YARN over een overzicht waarmee je alle toegewezen bronnen en bewerkingen kunt bijhouden. YARN is onderverdeeld in drie subsecties: de Resource Manager, de Application Master en de Node Manager.
Elk van deze drie subsecties maakt per cluster, applicatie en node een nieuwe instantie van zichzelf aan. Met YARN kun je niet alleen bronnen toewijzen aan verschillende taken, maar ook plannen hoe die bronnen in de loop van de tijd veranderen, wat geavanceerde algoritmische workflows mogelijk maakt. YARN is niet beperkt tot zijn eigen subsecties: in veel gevallen gebruik je YARN in combinatie met andere architectuurlagen zoals HDFS en Zookeeper om bronnen toe te wijzen en de algehele werking te bewaken.
Hadoop Mapreduce
Hadoop MapReduce is een ander belangrijk onderdeel van het Hadoop-ecosysteem. Zodra je Hadoop op Ubuntu installeert, kun je deze functie gebruiken om grote hoeveelheden data op een gedistribueerde manier te analyseren over meerdere computers. Kort gezegd werkt Hadoop MapReduce als volgt: je voert een grote dataset in als invoer. Deze data wordt geschud, opgesplitst en verdeeld over je aangesloten computers. Vervolgens worden de gegevens via zogenaamde reducers teruggebracht tot hun meest essentiële onderdelen. Elke afzonderlijke bewerking heet een Job.
Stel dat je een zin van drie woorden hebt die dient als de dataset die je met MapReduce wilt analyseren. Neem de zin: Beer Jacht Konijn. Hadoop MapReduce splitst deze zin op in drie afzonderlijke batches, elk met één woord. Vervolgens combineert het deze woorden met vergelijkbare invoer uit andere jobs, zodat er uiteindelijk één gecombineerde, opgeschoonde dataset ontstaat die eenvoudig te analyseren is.
Zookeeper
Zookeeper is een ander onderdeel van het Hadoop-ecosysteem en raakte wijdverspreid in gebruik met de release van Hadoop versie 2.0. De voornaamste taak van Zookeeper is het coördineren van de verschillende processen die binnen één Hadoop-instantie draaien. Zookeeper wordt daarom bijna altijd gebruikt in combinatie met YARN's Resource Manager en de verschillende functies van HDFS. De primaire rol van Zookeeper binnen deze processen is het detecteren en verhelpen van mogelijke storingspunten. Hiervoor gebruikt het twee hulpmiddelen: ZKFailoverController en het Zookeeper Quorum.
Bij deze procedures worden de datanodes die door andere componenten van de Hadoop-architectuur worden beheerd, geclassificeerd als actieve namenodes onder toezicht van de gebruiker. Vervolgens wordt elk van deze namenodes onderzocht binnen de twee eerder genoemde onderdelen van Zookeeper. Dit gebeurt om probleemgebieden te lokaliseren en mogelijke fouten vroegtijdig te herkennen.
Hadoop installeren op Ubuntu 20.04 – Stapsgewijze handleiding
Nu je de Hadoop-architectuur kent, is het tijd voor het eigenlijke werk: Hadoop installeren op Ubuntu 20.04. Dit is het afsluitende deel van deze Hadoop-tutorial. Laten we eerst de vereisten doornemen voordat we de stapsgewijze installatiehandleiding ingaan. Houd er rekening mee dat deze handleiding ook geschikt is voor Ubuntu 18.04.
Vereisten
De vereisten voor het installeren van Hadoop op Ubuntu zijn eenvoudig. Je hebt een computer met Ubuntu nodig met root-toegang, lokaal beschikbaar of op afstand toegankelijk via een VPS-server. Wat betreft software: zorg dat je al Java 11 en SSH hebt geïnstalleerd. Als dat niet het geval is, voer dan de volgende commando's één voor één uit om ze te installeren:
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y
Een licentie heb je niet nodig, want Hadoop is gratis en open-source. Dat is alles. Door naar stap één.
Stap 1: Maak een niet-root gebruiker aan voor Hadoop
Maak een gebruiker zonder root-rechten aan voor Hadoop met het volgende commando. Dit maakt deel uit van de voorbereidende configuratiestappen die we uitvoeren voordat we Hadoop daadwerkelijk downloaden en installeren:
sudo adduser hdoop
su - hdoop
Stap 2: SSH-sleutels instellen
Om Hadoop op Ubuntu te installeren, gebruiken we de Hadoop-gebruiker die je zojuist hebt aangemaakt en stellen we daarmee een SSH-verbinding in. Gebruik dit commando om een SSH-sleutelpaar te genereren en op te slaan:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Zodra de sleutels zijn gegenereerd, maakt de volgende regel het mogelijk om ze te markeren als authorized_keys en op te slaan in je SSH-map:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Gebruik dit commando om te controleren of je SSH-verbinding de juiste rechten heeft:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Bevestig de wijzigingen en je kunt voortaan altijd eenvoudig als de aangemaakte gebruiker verbinding maken met je localhost:
ssh localhost
Stap 3: Hadoop downloaden en installeren op Ubuntu
Je kunt de Apache Hadoop-website bezoeken voor een overzicht van beschikbare versies met hun changelog. Kies de gewenste versie en je krijgt een link die je kunt gebruiken met het volgende commando om Hadoop te downloaden en te installeren op Ubuntu. In dit voorbeeld kiezen we versie 3.3.6. Vervang '3.3.6' indien nodig door de meest recente stabiele versie:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
Zodra de download is voltooid, gebruik je deze regel om het uitpakken en installeren af te ronden:
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
Stap 4: De Hadoop-omgeving configureren
Instellen 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
Stap 5: Configuratiebestanden bewerken
Werk de XML-configuratiebestanden van Hadoop bij met je clusterinstellingen.
nano /usr/local/hadoop/etc/hadoop/core-site.xml
Stap 6: HDFS formatteren
Initialiseer de Hadoop-bestandssysteemnamespace.
/usr/local/hadoop/bin/hdfs namenode -format
Stap 7: Hadoop-services starten
Start de HDFS- en YARN-services.
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
Stap 8: Installatie verifiëren
Controleer de actieve Java-processen om te bevestigen dat Hadoop actief is.
jps
Stap 9: Webinterfaces openen
Open een webbrowser en ga naar de NameNode- en ResourceManager-interfaces van Hadoop.
NameNode: http://localhost:9870
ResourceManager: http://localhost:8088
Stap 10: Een MapReduce-voorbeeld uitvoeren
Voer een voorbeeld-MapReduce-taak uit om de installatie te valideren.
/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/*
Stap 11: Omgevingsvariabelen instellen
Voeg Hadoop toe bin en sbin mappen toe aan het systeem-PATH.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
Dat is alles! Je hebt Apache Hadoop succesvol geconfigureerd en geïnstalleerd op Ubuntu 20.04!
Conclusie
Kortom, het installeren van Hadoop op Ubuntu 20.04 is een uitgebreid proces dat nauwkeurigheid vereist en bereidheid om de details van de configuratie te verkennen. Door de stappen in deze handleiding te volgen, kunnen Ubuntu-gebruikers de volledige mogelijkheden van Hadoop benutten voor hun data-analyseprojecten.
Mijn aanbeveling: installeer Hadoop als single-node deployment met beperkte distributie als je het alleen wilt leren kennen en ermee wilt experimenteren. Voor dat doel is een VPS meer dan voldoende. Cloudzy biedt je een ruim aanbod aan verschillende Linux VPS-diensten waaronder een betrouwbare Ubuntu VPS die je snel kunt configureren als ideale leeromgeving voor Hadoop. Vanaf $4,95 per maand krijg je je eigen Ubuntu VPS met meer dan 12 locaties en 24/7 ondersteuning!
De voor de hand liggende keuze
De meeste Linux-servers draaien op Ubuntu. Waarom jij nog niet? Ontdek waarom iedereen voor Ubuntu kiest en start met een geoptimaliseerde Ubuntu VPS
Haal je Ubuntu VPSVeelgestelde vragen
Wat zijn de verschillen tussen HDFS en MapReduce?
Hoewel beide modules deel uitmaken van het Hadoop-ecosysteem, hebben ze elk een eigen doel. HDFS fungeert als gedistribueerd bestandssysteem en zorgt voor toegankelijkheid van data. MapReduce is gespecialiseerd in het opsplitsen en efficiënt analyseren van grote hoeveelheden data.
Is Hadoop een database?
Hadoop is geen database, ook al is die verwarring begrijpelijk. Het werkt als een gedistribueerd bestandssysteem waarmee je grote hoeveelheden data kunt opslaan en verwerken via een netwerk van gekoppelde computers. Het is geen directe vervanging voor een traditioneel databasesysteem.
Wat zijn de vier hoofdcomponenten van Hadoop?
Hadoop bestaat uit vier kerncomponenten: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce en Hadoop Common. Sommige bronnen beschouwen ZooKeeper ook als een component, maar dat wordt officieel niet erkend.
Waar wordt Hadoop typisch ingezet?
Hadoop wordt ingezet in uiteenlopende sectoren waar het beheren, opslaan, verwerken en analyseren van grote hoeveelheden data centraal staat. Het is geschikt voor middelgrote bedrijven, ziekenhuizen en groeiende startups die data-gedreven beslissingen willen nemen.