SQL-il tuginevate skriptimiskeelte kasutamine andmeanalüütikaks Hadoopi ökosüsteemis
Nimi
Madis-Karli Koppel
Kokkuvõte
Selle lõputöö eesmärk on andmeanalüütika algoritmide rakendamine,
et võrrelda erinevaid SQL-il põhinevaid skriptimiskeeli Hadoopi ökosüsteemis.
Lõputöö võrdleb erinevate raamistike efektiivsust ja algoritmide implementeerimise
lihtsust kasutajal, kellel pole varasemat hajusarvutuse kogemust. Eesmärgi
täitmiseks implementeeriti kolm algoritmi: Pearsoni korrelatsioon, lihtne lineaarne
regressioon ja naiivne Bayesi klassifikaator. Algoritmid implementeerti kahes
SQL-il põhinevas raamistikus: Spark SQL-s ja HiveQL-s, samuti implementeeriti
samade algoritmide Spark MLlibi versioon. Algoritme testiti klastris erinevate sisendfaili
suurustega, samuti muudeti kasutatavate tuumade arvu. Selles lõputöös
uuriti ka Spark SQLi ja Spark MLlibi algoritmide skaleeruvust. Algoritmide jooksutamise
tulemusel selgus, et Pearsoni korrelatsioon oli HiveQL’is veidi kiirem kui
teistes uuritud raamistikes. Lineaarse regressiooni tulemused näitavad, et Spark
SQL ja Spark MLlib olid selle algoritmiga sama kiired, HiveQL oli umbes 30%
aeglasem. Kahe esimese algoritmiga skaleerusid Spark SQL ja Spark MLlibist pärit
algoritm hästi. Naiivse Bayesi klasifikaatoriga tehtud testid näitasid, et Spark
SQL on selle algoritmiga kiirem kui HiveQL, hoolimata sellest, et ta ei skallerunud
hästi. Spark MLlibi tulemused selle algoritmiga ei olnud piisavad järelduste
tegemiseks. Korrelatsiooni ja lineaarse regressiooni implementatsioonid HiveContextis
ja SQLContextis andsid sama tulemuse. Selle lõputöö käigus leiti, et SQL-il
põhinevaid raamistikke on kerge kasutada: HiveQL oli kõige lihtsam samas kui
Spark SQL nõudis veidi hajusarvutuse tundma õppimist. Spark MLlibi algoritmide
implementeerimine oli raskem kui oodatud, kuna nõudis algoritmi sisemise töö
mõistmist, samuti osutusid vajalikuks teadmised hajusarvutusest.
et võrrelda erinevaid SQL-il põhinevaid skriptimiskeeli Hadoopi ökosüsteemis.
Lõputöö võrdleb erinevate raamistike efektiivsust ja algoritmide implementeerimise
lihtsust kasutajal, kellel pole varasemat hajusarvutuse kogemust. Eesmärgi
täitmiseks implementeeriti kolm algoritmi: Pearsoni korrelatsioon, lihtne lineaarne
regressioon ja naiivne Bayesi klassifikaator. Algoritmid implementeerti kahes
SQL-il põhinevas raamistikus: Spark SQL-s ja HiveQL-s, samuti implementeeriti
samade algoritmide Spark MLlibi versioon. Algoritme testiti klastris erinevate sisendfaili
suurustega, samuti muudeti kasutatavate tuumade arvu. Selles lõputöös
uuriti ka Spark SQLi ja Spark MLlibi algoritmide skaleeruvust. Algoritmide jooksutamise
tulemusel selgus, et Pearsoni korrelatsioon oli HiveQL’is veidi kiirem kui
teistes uuritud raamistikes. Lineaarse regressiooni tulemused näitavad, et Spark
SQL ja Spark MLlib olid selle algoritmiga sama kiired, HiveQL oli umbes 30%
aeglasem. Kahe esimese algoritmiga skaleerusid Spark SQL ja Spark MLlibist pärit
algoritm hästi. Naiivse Bayesi klasifikaatoriga tehtud testid näitasid, et Spark
SQL on selle algoritmiga kiirem kui HiveQL, hoolimata sellest, et ta ei skallerunud
hästi. Spark MLlibi tulemused selle algoritmiga ei olnud piisavad järelduste
tegemiseks. Korrelatsiooni ja lineaarse regressiooni implementatsioonid HiveContextis
ja SQLContextis andsid sama tulemuse. Selle lõputöö käigus leiti, et SQL-il
põhinevaid raamistikke on kerge kasutada: HiveQL oli kõige lihtsam samas kui
Spark SQL nõudis veidi hajusarvutuse tundma õppimist. Spark MLlibi algoritmide
implementeerimine oli raskem kui oodatud, kuna nõudis algoritmi sisemise töö
mõistmist, samuti osutusid vajalikuks teadmised hajusarvutusest.
Lõputöö keel
inglise
Lõputöö tüüp
Bakalaureus - Informaatika
Juhendaja(d)
Pelle Jakovits
Kaitsmise aasta
2016