Door Aad Offerman

Freelancer

Hadoop: raamwerk voor de grote jongens

Wat is Hadoop?

De eerste code voor Hadoop werd meer dan tien jaar geleden geschreven door Doug Cutting. Hij werkte destijds aan twee projecten voor een opensource zoekmachine op basis van Java: Nutch verzorgde het crawler-gedeelte, Lucene de indexering en search-afhandeling. Toen Google in 2004 op de Usenix-conferentie een paper over het MapReduce-algoritme publiceerde, gebruikte Cutting dat om de schaalbaarheid van Lucene te verbeteren. Het resultaat was Hadoop, dat inmiddels, net als Lucene en Nutch, is ondergebracht bij de Apache Software Foundation (ASF), waar Cutting op dit moment voorzitter van is.

Hadoop is het platform voor de internetondernemer die in het groot denkt. Wie aan de volgende Google, Twitter of Facebook werkt, heeft heel veel verwerkingskracht, geheugen en opslag nodig - veel meer dan een batterij grote servers je kan bieden. Gelukkig hebben de meeste internetdiensten genoeg aan horizontale schaalbaarheid. Dat wil zeggen dat de prestaties en de capaciteit min of meer lineair toenemen met het aantal servers dat je neerzet. Daardoor kan commodity hardware worden gebruikt: kleine, goedkope systemen die makkelijk en snel vervangen kunnen worden.

Zo gebruikt Google in zijn datacenters losse moederborden en harddisks, die in zelf ontworpen rekken worden geschoven. Als je kijkt naar de omvang van Googles infrastructuur - naar verluidt heeft het bedrijf met ongeveer een miljoen systemen twee procent van alle servers ter wereld in bezit - dan betaalt die eigen ontwikkeling zich dubbel en dwars terug. Andere grootverbruikers zijn bedrijven als Akamai, Amazon, Intel, Microsoft en Rackspace, al is hun infrastructuur een orde van grootte kleiner.

Google-technologie

Niet voor niets hebben de ontwikkelaars van Hadoop zich laten leiden door dezelfde technologieën die ook aan de basis van Google stonden: MapReduce en het Google File System. Die eerste is een methode om parallelle problemen over een heterogene cluster te verdelen. Voor de liefhebbers: MapReduce lijkt op een gedistribueerde, functionele vorm van backtracking en recursie.

GFS is het bijbehorende, gedistribueerde bestandssysteem. Bestanden worden in stukken geknipt en over verschillende systemen verdeeld. Door die stukken ook nog eens te kopiëren wordt voor redundancy gezorgd, en bovendien kan een bestand zo geparallelliseerd worden opgevraagd.

Location awareness

Logo Nutch Search EngineHoewel Hadoop in eerste instantie is ontwikkeld voor de Nutch/Lucene-zoekmachine, is het een algemeen raamwerk voor het beheer van een netwerk van nodes en het daarmee uitvoeren van gedistribueerde opdrachten. Om de infrastructuur zowel robuust als efficiënt te maken, moet de software weten welke nodes zich in welke rekken bevinden en welke nodes daar netwerktechnisch bij in de buurt zijn.

Deze vorm van location awareness zorgt ervoor dat redundante stukken data over verschillende rekken kunnen worden verspreid, zodat gegevens beschikbaar blijven als de stroomvoorziening of een netwerkswitch uitvalt. Tegelijkertijd wil je de worker nodes gegevens laten bewerken die zich al op hetzelfde systeem bevinden of anders op een data node die op dezelfde switch is aangesloten. De informatie over de onderlinge onafhankelijkheid van nodes is dus van belang voor het opslaggedeelte, terwijl de nabijheid belangrijk is bij het uitvoeren van de opdrachten.

Hadoop gebruikt daarvoor verschillende soorten nodes. Er is minstens één master node of NameNode. Deze fungeert als ingang voor het file system, dat uit een heleboel DataNodes bestaat. De JobTracker is verantwoordelijk voor de distributie van opdrachten over de compute nodes oftewel de TaskTrackers. Meestal zijn de data nodes met een compute node gecombineerd in één worker node. De nodes communiceren ten slotte met elkaar via rpc over ssh-verbindingen.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee