Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
  1. Hjem
  2. Høyskole
  3. NTNU
  4. TDT4225
  5. Studieguide
TDT4225 · NTNU

Studieguide for TDT4225 Store, distribuerte datamengder

Komplett pensumoversikt for store, distribuerte datamengder ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.

Innhold

  • Introduksjon
  • MapReduce
  • NoSQL
  • Distribuerte systemer
  • Parallellprosessering
  • Indeksering
  • Filstrukturer og hashing
  • Relasjonsalgebra og spørreutførelse
  • Ekstern sortering og fletting
  • Systemdimensjonering og I/O-volum
  • Eksamensstrategi
  • Formelark

Introduksjon

Denne studieguiden dekker TDT4225 Store, distribuerte datamengder ved NTNU (7,5 stp, masternivå). Faget handler om hvordan datamengder som er for store for arbeidslageret faktisk blir lagret, indeksert, sortert og behandlet — og hvordan du regner på lagerbehov, I/O-volum og responstider i stedet for å gjette.

Slik henger innholdet sammen med vurderingen. Emnet vurderes i dag med to gruppeprosjekter (40 %) og en skriftlig skoleeksamen på 3 timer (60 %), og emnebeskrivelsen legger vekt på distribuerte systemdesign, datamodeller og spørrespråk, indeksering og lagringsmetoder, koding, replikasjon og partisjonering, transaksjoner, konsistens og konsensus, samt database-as-a-service. Eksamensarkivet vi har kalibrert oppgavene mot er fra perioden da emnet het Lagring og behandling av store datamengder (skoleeksamen 3–4 timer, hjelpemiddelkode D: ingen trykte eller håndskrevne hjelpemidler, bestemt enkel kalkulator tillatt). Kjernemetodene i de settene — hashing og blokkorganisering, flerdimensjonale indekser, ekstern sortering, I/O-dimensjonering og relasjonsalgebra med gjentatte gjennomløp — er fortsatt fagets regnehåndverk, og det er der de fleste poengene ligger på en skriftlig prøve.

Guiden er bygget rundt ni temaer. Fem av dem er eksamensforankret i arkivet 2009–2012: filstrukturer og hashing, indeksering, systemdimensjonering og I/O-volum, ekstern sortering og fletting, og relasjonsalgebra og spørreutførelse. Fire er forankret i dagens emnebeskrivelse: parallellprosessering, distribuerte systemer, NoSQL og MapReduce. Bruk de fem første til å trene regneferdighet og de fire siste til å bygge begrepsapparatet du trenger i prosjektene og i drøftingsoppgavene.

Tre ferdigheter går igjen i alt materialet:

  • Forklare en struktur presist: «forklar oppbyggingen av en gridfil / et R-tre / en randomisert fil» — definisjon, oppbygging, splittregel, og når strukturen er egnet.
  • Utføre en algoritme for hånd: sette koordinater inn i et k-d-tre, splitte en R-tre-indeksblokk med kvadsplitt, kjøre reservoarsortering post for post.
  • Regne på volum og tid: lagerbehov, I/O-volum, antall gjennomløp, aksesstid per blokk — alltid med enheter og mellomregninger.

Et gjennomgående prinsipp knytter alt sammen: flaskehalsen er transporten, ikke regningen. Nesten hver eneste vurdering i faget koker ned til å telle hvor mange ganger data må passere mellom disk og arbeidslager.

MapReduce

Hyppig på eksamen

Programmeringsmodell for parallell batchbehandling av store datasett gjennom map- og reduce-faser med shuffle/sort imellom.

Hvorfor MapReduce

Når et datasett er for stort til å passe i ett arbeidslager og må prosesseres på mange maskiner samtidig, trenger vi en modell som skjuler kompleksiteten ved parallellitet, datafordeling og feiltoleranse. MapReduce (Dean & Ghemawat, Google 2004) er en slik modell: programmereren skriver bare to funksjoner, og rammeverket håndterer alt det vanskelige.

De to fasene

  • Map: map(k1, v1) → liste(k2, v2). Kjøres uavhengig på hver inputblokk (split). Produserer mellomliggende nøkkel–verdi-par. Fordi map-oppgavene er uavhengige, kan de kjøre fullstendig parallelt.
  • Reduce: reduce(k2, liste(v2)) → liste(v3). Får alle verdier for én nøkkel samlet og aggregerer dem.

Shuffle og sort

Mellom map og reduce ligger det dyreste steget: shuffle. Alle mellomliggende par med samme nøkkel k2 må samles på samme reducer. Dette krever partisjonering (typisk hash(k2) mod R, der R er antall reducere), sortering på nøkkel, og overføring av data over nettet. Dette er en distribuert variant av nettopp den eksterne sorteringen og partisjoneringen vi gjør i ett enkelt system.

Datalokalitet og blokker

Inputfilen deles i splits (typisk lik blokkstørrelsen i det distribuerte filsystemet). Planleggeren prøver å kjøre en map-oppgave på den maskinen som allerede har blokken lokalt — slik unngås nettverkstrafikk. Dette er det samme prinsippet vi bruker når vi minimerer I/O-volum: flytt beregningen til dataene, ikke omvendt.

Feiltoleranse

Hver oppgave er deterministisk og uten sideeffekter. Faller en maskin ut, kjøres oppgaven på nytt et annet sted fra inputblokken. Trege noder («stragglers») håndteres med spekulativ eksekvering: en kopi av oppgaven startes i parallell, og første som blir ferdig vinner.

Eksempel: dimensjonering av en MapReduce-jobb

Du skal telle forekomster av hvert produktnummer i en logg på 4 TB. Det distribuerte filsystemet bruker blokkstørrelse 128 MB.

Antall map-oppgaver: 4 TB / 128 MB = 4 194 304 MB / 128 MB = 32 768 map-oppgaver (én per split).

Map-output: hver map-funksjon sender ut par (produktnr, 1). Med en lokal combiner som forhåndsaggregerer per blokk, reduseres mellomdataene kraftig før shuffle.

Shuffle-volum: hvis det finnes 50 000 distinkte produktnumre og hver mapper i snitt ser 10 000 distinkte, blir mellomvolumet etter combiner ca. 32 768 × 10 000 par. Hver reducer (med R = 64) får da i gjennomsnitt (32 768 × 10 000)/64 par å summere. Dette illustrerer hvorfor combiner og fornuftig valg av R er avgjørende for shuffle-kostnaden.

Kobling til resten av faget

En distribuert join i MapReduce kan gjøres enten som reduce-side join (begge tabeller emittes med koblingsnøkkel, reducer matcher) eller map-side join (den lille tabellen kringkastes til alle mappere). Dette tilsvarer valget mellom gjentatte gjennomløp og å holde den minste operanden i arbeidslager, slik vi gjør i relasjonsalgebra på én maskin.

Nøkkelformler

  • •map(k1, v1) → liste(k2, v2)
  • •reduce(k2, liste(v2)) → liste(v3)
  • •Antall map-oppgaver ≈ inputstørrelse / blokkstørrelse
  • •Partisjonering til reducer: hash(k2) mod R

Vanlige feil

  • ⚠️Tro at reduce kan se på tvers av nøkler — hver reduce-kall får kun ÉN nøkkel med tilhørende verdiliste
  • ⚠️Glemme combiner: uten lokal forhåndsaggregering blir shuffle-volumet unødvendig stort
  • ⚠️Anta at map-output er sortert globalt — sortering skjer kun innen hver partisjon

Eksamenstips

  • 💡Når du dimensjonerer en jobb: regn først antall splits = datastørrelse/blokkstørrelse, deretter shuffle-volum
  • 💡Beskriv shuffle som distribuert sortering/partisjonering — knytt det til ekstern sortering i faget
  • 💡Forklar datalokalitet med I/O-minimering: beregningen flyttes til dataene

Laster...

Laster…
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert