LEKETØY: Selv om Hadoop er ramme alvor, er det en leketøyselefant det har navnet sitt fra.

Hva eller hvem er Hadoop?

Hadoop er et rammeverk i åpen kildekode for å lagre data og kjøre programvare på klynger av forskjellige datamaskiner.

Publisert Sist oppdatert

Det kan være hyllevare, og det kan være spesielt bygde maskiner. Poenget er at Hadoop kan håndtere enorme mengder data på forskjellig utstyr. Det var med begrepet "big data" at Hadoop ble verdenskjent. Det ble også starten på at en rekke prosjekter innen stordata kan ha litt pussige navn.

Hadoop er navnet på leketøyelefanten til sønnen til Doug Cutting. Han er mannen bak prosjektet som egentlig startet i forbindelse med Nutch, et søkemotorprosjekt i åpen kildekode. Apache-prosjektet Hadoop er et Javabasert rammeverk som støtter prosessering av store datasett i distribuerte datamiljøer.

Opprinnelig bygger Hadoop på Googles offentliggjøring i 2005 av MapReduce, som er deres rammeverk for distribuert dataprosessering, og lagringsteknologien Google File System.Yahoo tok fatt i dette og har vært den største bidragsyteren bak Hadoop. I 2011 opprettet Yahoo sammen med venture-selskapet Benchmark Capital bedriften Hortonworks bestående av Yahoos ledende Hadoop-utviklere. Bedriften har fått navnet etter elefanten Horton, som er hovedfigur i et par kjente barnebøker.

Skalerbart

Hadoop er svært skalerbart og kan håndtere lagring og bearbeiding av flere petabyte med data. Så langt skal de største Hadoop-klyngene være på 2000 noder, men det er et mål å kunne flerdoble dette. Enkelte mener det skal være mulig å nå tilnærmet uendelig skalerbarhet. 

Med MapReduce brytes en applikasjon ned i et stort antall små deler, som kalles fragmenter eller blokker. Disse kan kjøres på en hvilken som helst node i en klynge. Ved hjelp av et distribuert filsystem, Hadoop Distributed File System, blir data overført hurtig mellom nodene og replikert på en slik måte at systemet skal kunne fortsette uten feil selv om et stort antall noder skulle gå ned.

Det er MapReduce som står for parallellprosesseringen i Hadoop og er således en vesentlig av Hadoop. En viktig del av MapReduce er styreprogrammet for oppgavene som skal utføres, Job Scheduler. Den bestemmer hvilke servere som skal kjøre hver oppgave fra brukerne og fordele utførelsen av flere jobber i en delt klynge. For å gjøre det sistnevnte forespør Job Scheduler modulen NameNode, som holder rede på hvilke blokker på lagringsmedia som utgjør filene som kreves for å utføre oppgaven.

Alle type data

Hver av serverne i klyngen som skal utføre oppgaven blir så instruert til å jobbe mot sine blokker av data. Internt i strukturen til MapReduce finnes en konstruksjon som kalles input split som hver datablokk kan brytes ned til individuelle poster (records). En egen funksjonalitet er bygget inn for å føre tilbake (reassemble) enkeltposter som er brutt opp av blokkgrenser.

Programkoden som benytter en map job – en oppgave i MapReduce, kan bestå av nær sagt hva som helst. MapReduce lar programmerere utvikle og benytte kode som kjører direkte på servernoden i klyngen. Programkoden forstår formatet på dataene som er lagret i hver blokk i filene og kan algoritmer fra enkle ting som å telle forekomster av ord til tyngre prosessering som språkgjenkjenning, å finne mønstre og annen avansert databehandling som er i ferd med å materialisere seg. Slikt som gjenkjenning av ansikter, håndskrift og bilder, eller det som av enkelte kalles maskinlæring, at systemet bygger erfaring.