nrk.no

Slik skal big data håndteres i framtiden

Kategorier: Konferanser og messer & Open Source


Når stadig større mengder data innhentes, må man tenke nytt om hvordan man lagrer og bearbeider dem. Vi har vært på Europas første dedikerte konferanse for Spark – open source plattformen som vil dominere Big Data-behandling i framtiden.

NRK pirker også borti spørsmålene omkring stordata. Vi har mye og bredt innhold i form av tekst, video og lyd, og mange brukere. Men vi sitter med en følelse av at vi ikke utnytter innholdet vårt godt nok. Det populære innholdet går godt, men mye av det smale innholdet vårt treffer et mindre publikum enn vi ønsker. Hva om vi kunne bruke maskinlæring til å analysere bruken og presentere innhold mer treffsikkert? Et av de mest interessante redskapene i stordata-verktøykassa som kan hjelpe oss med det heter Apache Spark.

Apache Spark er en åpen kildekode stordata-plattform med skikkelig momentum. Den er ansett som arvtageren til Hadoop, hovedsaklig fordi den er raskere. Spark håndterer data smartere ved å minimere skriving til disk. Mindre disk IO og bedre optimalisert bruk av minne gjør at beregninger kan kjøre raskere. Spark har også en enkel programmeringsmodell som gjør det lett å komme i gang med distribuert databehandling. I tillegg kan Spark kjøre overalt, og oppsett av egne Spark-klynger i skyen er overraskende enkelt.

Vi har kikket på og eksperimentert med Spark i en periode, og for å få enda større innsikt i plattformen var vi tilstede på Spark Summit Europe, den første dedikerte Spark-konferansen i Europa noensinne. Konferansen fulgte to spor, et for utviklere og et for “data scientists”. Publikum var også en en fin miks av utviklere, folk med statistikkbakgrunn og andre.

Les også: Hva er stordata? 

Moden teknologi

Det er spennende å se hvem som er tilstede på en slik konferanse, og hva de bruker teknologien til. Når man tenker stordataanalyse tenker man kanskje på NSAs masseovervåkning, nett-annonser eller nyhetsstrømmen til Facebook. Derfor er det spennende å se at bruken spenner over et mye bredere område.

Spark Summit Parkinsons

Visste du at Spark brukes av et busselskap i Madrid til å detektere avvik i trafikkmønstre i sanntid, slik at de bedre kan planlegge kollektivtrafikken? Eller at Intel samarbeider med The Michael J. Fox Foundation om et Spark-basert forskningsprosjekt rundt Parkinsons sykdom? De bruker smartklokker og smarttelefoner til å samle detaljert informasjon om skjelvingene til Parkinsons-pasienter. Deretter bruker de Spark til å analysere data for å kunne gi en bedre behandling til den enkelte pasient, og ta forskningen på sykdommen til neste nivå.

Les også: Big data: Hva Facebook vet om deg, din kjæreste, din kjærestes ekskjæreste og din ekskjærestes nye kjæreste. 

En ansatt i HortonWorks viste hvordan han gjennom snedig bruk av NLP-støtten (natural language processing) i Spark kunne analysere rapporter fra legebesøk i USA. Han demonstrerte hvilke symptomer som henger sammen med hvilke sykdommer, og mente han kunne vise sammenhenger som ennå ikke var dokumentert i medisinsk forskning. Det er mye spennende som står mellom linjene i store datasett.

Bredden i Spark-bruken viser at teknologien begynner å bli moden. IBM skryter helhjertet av hvordan de har bygget om store deler av datavarehus-stacken sin til å bruke/støtte Spark. Når en så tung tradisjonell aktør som IBM legger prestisjen sin inn i bruk av en åpen kildekode-teknologi vet du at teknologien begynner å bli voksen.

Les også: Big Data – nyttig og skremmende 

Analyse rett i nettleseren

Den tydeligste trenden på konferansen var kjærligheten til notebooks. En notebook er et interaktivt konsoll i nettleseren hvor du kan utforske og visualisere dataene dine i sanntid. Nettsiden er koblet til direkte til datakilden din og en Spark-klynge. I praksis betyr dette at du kun trenger en nettleser for å teste hypoteser som krever tunge beregninger. Om du liker det du finner ut, kan du lagre notebooken og inkludere resultatet på f.eks. et dashboard. Kjempepraktisk!

Spark startet som et forskningsprosjekt på UC Berkeley, men etter hvert startet mange av de sentrale utviklerne selskapet Databricks for å kommersialisere teknologien. Databricks var tungt tilstede på messa, og i alle deres teknologidemoer brukte de sin egen notebook til å vise frem ting. Leier du Spark-klynge av dem får du notebook med på kjøpet, og måten de brukte den på i presentasjonene sine var svært overbevisende. Stordata gjort enkelt, rett og slett.

Apache Zeppelin er et åpent kildekode-alternativ til Databricks notebook. Det krever litt mer jobb å sette opp, men er billigere i drift og du får større frihet til å integrere mot andre plattformer. Disse to er ikke de eneste alternativene. Blant annet har man spark-notebook, Jupyter, eller DataScienceWorkBench fra IBM. 

Vi har bestemt oss for å teste ut Apache Zeppelin snarest, og gleder oss til å eksperimentere med dataene våre.

En plattform i utvikling

Teknologimessig er det åpenbart at folk som bruker Spark også sverger til andre åpen kildekode-verktøy. I mange av presentasjonene ble det trukket frem hvor fint Spark samarbeider med databasen Cassandra, og meldingssystemet Kafka. Andre teknologier som stadig ble trukket frem var Mesos og Akka.

Spark Summit Cassandra

På Spark Summit ble det også snakket endel om R. R er en plattform og et programmeringsspråk som er mye brukt i akademia for statistisk analyse. Styrken til R er at det er enkelt å komme i gang med og har en haug innebygde algoritmer til statistisk analyse. Svakheten har vært at det ikke har noen muligheter for å distribuere de tyngste beregningene på flere maskiner, det kjører kun på en maskin. Det har Spark bestemt seg for å gjøre noe med. I sommer fikk nemlig Spark R-støtte, og dette har åpnet plattformen for et helt nytt publikum.

Ettersom Spark blir mer og mer brukt av personer som ikke har programmering som hovedgeskjeft, virker det som om bruken av Python og R øker. Databricks anbefaler alikevel å bruke Scala av ytelsesgrunner, men ytelsesforskjellene er alikevel ikke så store som tidligere.

Ved bruk av DataFrame-abstraksjonen  (inspirert av dataframes i R) kompileres alle beregninger ned til samme byte-kode uavhengig av programmeringsspråk. Vi har lekt oss litt med DataFrames selv, og selv om det på mange måter har gjort det lettere å jobbe med data, har vi irritert oss over at man mister typeinformasjon. Den største nyheten på Spark Summit var i så måte at DataFrames vil få sterk typing i neste versjon av Spark. Vi gleder oss!

Har du spørsmål om Spark eller konferansen er kommentarfeltet åpent som alltid.

4 kommentarer

    • Øyvind Holmstad (NRK) (svar til Hest)

      Hehe, vil ikke si at man får dårlig ytelse med Scala, Spark og en klynge med maskiner. Scala har i teorien samme ytelse som Java, og Java er ikke så treigt som det en gang var. Ytelsesøkningen ved å gå fra Scala til Julia er dermed ikke så stor, til forskjell fra Python og R som henger langt bak. Sjekk gjerne tabellen på julialang.org/ som sammenligner ytelse på forskjellige klassiske beregninger.

      Med det sagt, Julia er absolutt interessant, men det er fortsatt litt tidlig for produkssjonsbruk. Pluss at vi hadde kommet til å savne den gode bibliotekstøtten man får ved å kjøre på JVM.

    • Øyvind Holmstad (NRK) (svar til Tore Olav)

      Godt spørsmål! Jeg tror svaret er både ja og nei. Man kan løse mange av de samme oppgavene med MPI og Hadoop/Spark, men jeg har inntrykk av at Spark er foretrukket i industrien mens MPI står sterkere i akademia. MPI har vel tradisjonelt hatt en svakhet med IO-intensive problemer der Hadoop og Map/Reduce utnytter nærheten til dataene gjennom HDFS. Spark er bygget på samme prinsippet, men tar det enda et skritt ved å holde de distribuert dataene (hovedsaklig) i minne. Hadde ikke hørt om BeeGFS, dette kan kanskje løse noen av disse problemene for MPI?

      Samtidig er Spark utrolig brukervennlig, og en platform man raskt kan komme i gang med og få resultater fra. MPI har høyere terskel for å løse de samme oppgavene. Man kan superenkelt sette opp et Spark-cluster i Google-skyen, Amazon, eller Azure med noen museklikk, mens MPI krever mer infrastruktur-fikling. Tror det er litt av grunnen til at mange flere har hørt om og tatt i bruk Spark over MPI.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.