Video: Sqoop Import and Export data from RDMBS and HDFS 2024
Apache Hadoop is een gratis, open-source softwareplatform voor het schrijven en uitvoeren van applicaties die een grote hoeveelheid gegevens verwerken voor voorspellende analyses. Het maakt een gedistribueerde parallelle verwerking mogelijk van grote datasets die uit verschillende bronnen zijn gegenereerd. In essentie is het een krachtige tool voor het opslaan en verwerken van big data.
Hadoop slaat alle soorten gegevens, gestructureerd of ongestructureerd, op uit verschillende bronnen - en vervolgens verzamelt deze gegevens op vrijwel elke gewenste manier. Hadoop verwerkt heterogene gegevens met behulp van gedistribueerde parallelle verwerking - waardoor het een zeer efficiënt raamwerk is om te gebruiken in analytische software die te maken heeft met big data. Geen wonder dat sommige grote bedrijven Hadoop gebruiken, inclusief Facebook, Yahoo!, Google, IBM, Twitter en LinkedIn.
Vóór Hadoop konden bedrijven geen gebruik maken van big data, die niet was geanalyseerd en bijna onbruikbaar was. De kosten om die gegevens op te slaan in een eigen relationele database en er een gestructureerd formaat omheen te creëren, rechtvaardigen niet de voordelen van het analyseren van die gegevens en het gebruik ervan. <1099> Hadoop, aan de andere kant, maakt die taak naadloos - tegen een fractie van de kosten - waardoor bedrijven waardevolle inzichten kunnen vinden in de overvloedige gegevens die ze hebben verzameld en zich ophopen.
U hoeft geen schema te maken voordat u uw gegevens kunt begrijpen; Met Hadoop kunt u die gegevens opvragen in de oorspronkelijke indeling.
Hadoop gebruikt twee hoofdcomponenten (subprojecten) om zijn werk te doen: MapReduce en Hadoop Distributed File System. De twee componenten werken samen:
MapReduce
-
: Hadoop's implementatie van MapReduce is gebaseerd op Google's onderzoek naar programmeermodellen om grote datasets te verwerken door ze in kleine taakblokken te verdelen. MapReduce gebruikt gedistribueerde algoritmen op een groep computers in een cluster om grote gegevenssets te verwerken.Het bestaat uit twee functies: De
-
Map () -functie die zich op het -knooppunt (netwerkcomputer) bevindt. Het verdeelt de invoerquery of taak in kleinere subtaken, die het vervolgens distribueert naar werkknooppunten die de kleinere taken verwerken en de antwoorden terugsturen naar het hoofdknooppunt. De subtaken worden parallel op meerdere computers uitgevoerd. De
-
Reduce () -functie verzamelt de resultaten van alle subtaken en combineert deze om een geaggregeerd eindresultaat te produceren dat wordt teruggezonden als het antwoord op de oorspronkelijke grote vraag. Hadoop Distributed File System (HDFS)
-
-
: HDFS repliceert de datablokken die zich op andere computers in uw datacenter bevinden (om betrouwbaarheid te garanderen) en beheert de overdracht van gegevens naar de verschillende delen van uw gedistribueerde systeem. Beschouw een database van twee miljard mensen en ga ervan uit dat u het aantal sociale vrienden van Mr. X wilt berekenen en rangschikken op basis van hun geografische locaties. Dat is een lange bestelling.
De gegevens voor twee miljard mensen kunnen afkomstig zijn van zeer verschillende bronnen, zoals sociale netwerken, e-mailcontactadreslijsten, berichten, tweets, browsegeschiedenissen - en dat is alleen voor openers. Hadoop kan deze enorme, diverse hoeveelheid gegevens verzamelen, zodat u deze kunt onderzoeken met een eenvoudige vraag.
U zou MapReduce programmeermogelijkheden gebruiken om deze vraag op te lossen. Het definiëren van de procedures Map en Verkleinen maakt zelfs deze grote dataset beheersbaar. Gebruikmakend van de tools die het Hadoop-framework biedt, zou je een MapReduce-implementatie maken die de berekening zou doen als twee subtaken:
Bereken het gemiddelde aantal sociale vrienden van Mr. X.
-
Regeer de vrienden van Mr. X op geografische locatie.
-
Uw implementatieprogramma MapReduce voert deze subtaken parallel uit, beheert de communicatie tussen de subtaken en stelt de resultaten samen. Van de twee miljard mensen zou je weten wie de online vrienden van Mr. X zijn.
Hadoop biedt een reeks Map-processors; welke door u geselecteerd wordt, hangt af van uw infrastructuur.
Elk van uw processors zal een bepaald aantal records verwerken. Stel dat elke processor omgaat met een miljoen gegevensrecords. Elke processor voert een kaartprocedure uit die meerdere records van sleutel / waarde-paren produceert waarbij
G (sleutel) de geografische locatie is van een persoon (land) en N (waarde) is het aantal contacten die de persoon heeft. Stel dat elke Map-processor vele paren van het formulier produceert, zoals:
Processorkaart # 1:
Processorkaart # 2:
Processorkaart # 3:
Processorkaart # 4:
Processorkaart # 5:
Processorkaart # 6:
In de fase Verkleinen kent Hadoop een taak toe aan een bepaald aantal processors: Voer de procedure Verkleinen uit die de waarden van dezelfde sleutels samenvoegt om te produceren een eindresultaat. Voor dit voorbeeld geeft de implementatie Verkleinen het aantal waarden weer voor elke sleutel: geografische locatie. Dus na de kaartfase produceert de fase Verkleinen het volgende:
------ ----
Het is duidelijk dat Mr.X is een populaire kerel - maar dit was een heel eenvoudig voorbeeld van hoe MapReduce kan worden gebruikt. Stel je voor dat je te maken hebt met een grote dataset waar je complexe operaties wilt uitvoeren, zoals het clusteren van miljarden documenten waarbij de operatie en de gegevens gewoon te groot zijn voor een enkele machine om te verwerken. Hadoop is de tool om te overwegen.