Wat is Hadop? Invoering, Architechnologie, ecosysteem, componenten
Wat is Hadoop?
Apache Hadoop is een open source softwareframework dat wordt gebruikt om gegevensverwerkingstoepassingen te ontwikkelen die worden uitgevoerd in een gedistribueerde computeromgeving.
Toepassingen die zijn gebouwd met HADOOP worden uitgevoerd op grote datasets die zijn verdeeld over clusters van commodity computers. Commodity computers zijn goedkoop en overal verkrijgbaar. Deze zijn vooral handig om tegen lage kosten meer rekenkracht te krijgen.
Net als gegevens die zich in een lokaal bestandssysteem van een personal computersysteem bevinden, bevinden gegevens zich in Hadoop in een gedistribueerd bestandssysteem dat een Hadoop gedistribueerd bestandssysteem. Het verwerkingsmodel is gebaseerd op 'Gegevenslokaliteit' concept waarbij computationele logica wordt verzonden naar clusterknooppunten (server) die gegevens bevatten. Deze computationele logica is niets, maar een gecompileerde versie van een programma geschreven in een hogere programmeertaal zoals Java. Zo'n programma verwerkt gegevens die zijn opgeslagen in Hadoop HDFS.
Weet jij het? Een computercluster bestaat uit een set van meerdere verwerkingseenheden (opslagschijf + processor) die met elkaar verbonden zijn en als één systeem functioneren.
Hadoop-ecosysteem en componenten
Het onderstaande diagram toont verschillende componenten in het Hadoop-ecosysteem:
Apache Hadoop bestaat uit twee deelprojecten:
- Hadoop-kaartVerminderen: MapReduce is een computationeel model en softwareframework voor het schrijven van applicaties die op Hadoop draaien. Deze MapReduce-programma's zijn in staat om enorme hoeveelheden data parallel te verwerken op grote clusters van computationele knooppunten.
- HDFS (Hadoop gedistribueerd bestandssysteem): HDFS verzorgt het opslaggedeelte van Hadoop-applicaties. MapReduce-applicaties gebruiken data van HDFS. HDFS maakt meerdere replica's van datablokken en verdeelt deze over rekenknooppunten in een cluster. Deze verdeling maakt betrouwbare en extreem snelle berekeningen mogelijk.
Hoewel Hadoop vooral bekend is vanwege MapReduce en het gedistribueerde bestandssysteem HDFS, wordt de term ook gebruikt voor een familie van gerelateerde projecten die vallen onder de paraplu van gedistribueerd computergebruik en grootschalige gegevensverwerking. Andere Hadoop-gerelateerde projecten op apache omvatten zijn Hive, HBase, Mahout, Sqoop, Flume en ZooKeeper.
Hadoop Architectuur
Hadoop heeft een Master-Slave Architectuur voor gegevensopslag en gedistribueerde gegevensverwerking met behulp van KaartVerminderen en HDFS-methoden.
NaamKnooppunt:
NameNode vertegenwoordigde alle bestanden en mappen die in de naamruimte worden gebruikt
DataNode:
DataNode helpt u bij het beheren van de status van een HDFS-knooppunt en stelt u in staat om met de blokken te communiceren
MasterNode:
Met het masterknooppunt kunt u parallelle gegevensverwerking uitvoeren met behulp van Hadoop MapReduce.
Slave-knooppunt:
De slave nodes zijn de extra machines in het Hadoop cluster waarmee u data kunt opslaan om complexe berekeningen uit te voeren. Bovendien worden alle slave nodes geleverd met Task Tracker en een DataNode. Hiermee kunt u de processen synchroniseren met respectievelijk de NameNode en Job Tracker.
In Hadoop kan een master- of slave-systeem in de cloud of on-premise worden opgezet
Kenmerken van 'Hadoop'
• Geschikt voor Big Data-analyse
Omdat Big Data doorgaans gedistribueerd en ongestructureerd van aard is, zijn HADOOP-clusters het meest geschikt voor analyse van Big Data. Omdat het verwerkingslogica is (niet de feitelijke data) die naar de computing nodes stroomt, wordt er minder netwerkbandbreedte verbruikt. Dit concept wordt genoemd als datalocatieconcept wat de efficiëntie van op Hadoop gebaseerde applicaties helpt verhogen.
• Schaalbaarheid
HADOOP-clusters kunnen eenvoudig worden geschaald tot elke gewenste mate door extra clusterknooppunten toe te voegen en maken zo de groei van Big Data mogelijk. Bovendien vereist schalen geen wijzigingen in de applicatielogica.
• Fouttolerantie
Het HADOOP-ecosysteem heeft een voorziening om de invoergegevens te repliceren naar andere clusterknooppunten. Op die manier kan de gegevensverwerking, in het geval van een clusterknooppuntstoring, nog steeds doorgaan met behulp van gegevens die zijn opgeslagen op een ander clusterknooppunt.
Netwerktopologie in Hadoop
Topologie (Arrangment) van het netwerk, beïnvloedt de prestaties van het Hadoop-cluster wanneer de grootte van het Hadoop-cluster groeit. Naast de prestaties moet men ook letten op de hoge beschikbaarheid en afhandeling van fouten. Om dit te bereiken, maakt Hadoop, clustervorming gebruik van netwerktopologie.
Normaal gesproken is netwerkbandbreedte een belangrijke factor om te overwegen bij het vormen van een netwerk. Omdat het meten van bandbreedte echter moeilijk kan zijn, wordt in Hadoop een netwerk weergegeven als een boom en wordt de afstand tussen knooppunten van deze boom (aantal hops) beschouwd als een belangrijke factor bij de vorming van een Hadoop-cluster. Hier is de afstand tussen twee knooppunten gelijk aan de som van hun afstand tot hun dichtstbijzijnde gemeenschappelijke voorouder.
Hadoop-cluster bestaat uit een datacenter, het rack en het knooppunt dat daadwerkelijk taken uitvoert. Hierbij bestaat het datacenter uit racks en het rack uit knooppunten. De netwerkbandbreedte die beschikbaar is voor processen varieert afhankelijk van de locatie van de processen. Dat wil zeggen dat de beschikbare bandbreedte minder wordt naarmate we verder weggaan van-
- Processen op hetzelfde knooppunt
- Verschillende knooppunten op hetzelfde rack
- Knooppunten op verschillende racks van hetzelfde datacenter
- Knooppunten in verschillende datacenters