• No results found

Uk´ azka v´ ysledku vyhled´ av´ an´ı z testovac´ıho datasetu

2.1.3 Pouˇ zit´ı

Splunk je v´yraznˇe pouˇz´ıvan´y ve velk´ych spoleˇcnostech, typicky tam, kde jsou v´yrobn´ı linky. Forwarder je nasazen na ´uloˇzn´ych m´ıstech, kde jsou ukl´ad´any logy, at’ uˇz

z v´yrobn´ıch syst´em˚u nebo z jin´eho m´ısta. Pˇri nˇejak´e zmˇenˇe, nebo v definovan´ych intervalech forwarder pos´ıl´a data do Splunku, kde prob´ıh´a datov´a anal´yza a jej´ı v´ysledky jsou zobrazeny pomoc´ı graf˚u, statistik a tabulek v reportech, dashboardech a alertech.

Reporty

Reporty jsou v´ysledky vyhled´avac´ıch dotaz˚u, kter´e mohou zobrazit statistiky a vizu-alizace ud´alost´ı. Reporty mohou b´yt spuˇstˇeny kdykoliv a mohou zachytit nejnovˇejˇs´ı data pˇri kaˇzd´em spuˇstˇen´ı. Z´aroveˇn mohou b´yt sd´ıleny s ostatn´ımi uˇzivateli a hlavnˇe mohou b´yt pˇrid´any do dashboard˚u.

Dashboardy

Dashboard je kolekce objekt˚u (report˚u, odkaz˚u a podobnˇe). Umoˇzˇnuj´ı n´am kom-binovat v´ıce report˚u dohromady, a t´ım ucelit pˇr´ıbˇeh dat na jedno velk´e pl´atno.

Dashboard se skl´ad´a z panel˚u, kter´e v sobˇe maj´ı grafy, statistiky a podobnˇe, coˇz jsou jednotliv´e reporty.

Alerty

Alerty jsou akce, kter´e se spust´ı pˇri specifick´e ud´alosti, kdy jsou splnˇeny urˇcit´e podm´ınky definovan´e uˇzivatelem. C´ılem alert˚u je z´ıskat napˇr´ıklad logov´an´ı akc´ı, kter´e jsou nˇejak´ym zp˚usobem kritick´e a tyto alerty odeslat pomoc´ı e-mailu nebo na specifick´y endpoint.

Casovaˇˇ ce

Casovaˇˇ ce slouˇz´ı k nastaven´ı trigger˚u pro spouˇstˇen´ı report˚u automaticky bez uˇzivatelsk´eho z´asahu. Ty mohou b´yt dle definice spouˇstˇeny v r˚uzn´ych interva-lech: mˇes´ıˇcnˇe, t´ydnˇe, dennˇe nebo pro specifick´y ˇcasov´y rozsah. T´ım m˚uˇze doj´ıt k zlepˇsen´ı v´ykonu (rychlosti) v dashboardech pˇri otevˇren´ı uˇzivatelem. ˇCasovaˇce dis-ponuj´ı moˇznost´ı automatick´eho zas´ılan´ı reportu po skonˇcen´ı ˇcinnosti.

2.1.4 Dalˇ s´ı vlastnosti

Splunk disponuje mnoha addony a sadami n´astroj˚u, kter´e se daj´ı pˇridat k z´akladn´ı verzi. Nˇekter´e jsou samozˇrejmˇe placen´e. Zaj´ımav´e addony pro Splunk jsou napˇr´ıklad Splunk Analytics for Hadoop - pro ucelen´e vyhled´av´an´ı a analyzov´an´ı Hadoop dat se Splunk Enterprise. N´aslednˇe r˚uzn´e konektory pro pˇr´ıpojen´ı k datab´azi (ODBC, DB Connect), mobiln´ı addon a Amazon Web Services [15]

Velmi zaj´ımav´y n´astroj pro Splnuk je Splunk Machine Learning Toolkit, kter´y disponuje knihovnami pro machine learning a Pythonem spolu s knihovnami Pandas, NumPy, SciKit, SciPy a dalˇs´ımi. T´ımto zp˚usobem je moˇzn´e vyˇreˇsit situaci z´ısk´an´ı dat ze Splunku pro machine learning.

2.2 Apache Hadoop

Apache Hadoop je framework, kter´y umoˇzˇnuje distribuovan´e zpracov´an´ı velk´ych da-taset˚u napˇr´ıˇc clustery s vyuˇzit´ım jednoduch´ych programovac´ıch model˚u. Je navrˇzen pro ˇsk´alov´an´ı od jednoho serveru aˇz k tis´ıc˚um stroj˚u, kde kaˇzd´y z nich nab´ız´ı lok´aln´ı komunikaci a ukl´ad´an´ı. Abychom se nemuseli spol´ehat na hardware pro doruˇcen´ı vy-sok´e dostupnosti, Hadoop je navrˇzen tak, aby detekoval a vyˇreˇsil selh´an´ı na aplikaˇcn´ı vrstvˇe. Z´akladn´ı myˇslenka je takov´a, ˇze se data rozdˇel´ı a uloˇz´ı napˇr´ıˇc kolekc´ı stroj˚u (cluster). Pot´e je na ˇradˇe pr´ace s daty na m´ıstˇe, kde jsou skuteˇcnˇe uloˇzena. Tedy v tomto pˇr´ıpadˇe uˇz v clusteru. V t´eto f´azi je jednoduch´e pˇrid´avat stroje do clusteru dle r˚ustu dat.

2.2.1 Hadoop ekosyst´ em - z´ akladn´ı moduly

Hadoop se skl´ad´a z mnoha modul˚u, nˇekter´e jsou povinn´e a nˇekter´e lze pˇrid´avat a odeb´ırat dle potˇreby ˇreˇsen´ı.

Hadoop HDFS

Hadoop HDFS je distribuovan´y souborov´y syst´em, kter´y pracuje s velk´ymi datasety.

Je to nejspodnˇejˇs´ı vrstva cel´eho Hadoop ekosyst´emu pro ukl´ad´an´ı dat. Data mohou b´yt t´emˇeˇr v jak´ekoliv formˇe (json, csv, txt, ...).

Soubor, nahran´y do HDFS, je rozdˇelen do nˇekolika blok˚u o velikosti 64 MB (z´akladn´ı velikost), kde kaˇzd´y blok dostane sv´e unik´atn´ı jm´eno. Po nahr´an´ı souboru do clusteru bude kaˇzd´y blok uloˇzen do jednoho nodu v clusteru. Na kaˇzd´em stroji v clusteru bˇeˇz´ı takzvan´y DataNode. O tom, jak´ym zp˚usobem z´ısk´ame z rozdˇelen´ych blok˚u zpˇet p˚uvodn´ı soubor, se star´a NameNode. Informace uloˇzen´e v NameNode se naz´yvaj´ı Metadata. V r´amci bezpeˇcnosti existuje kopie NameNodu pro pˇr´ıpad v´ypadku hlavn´ıho NameNodu. Dalˇs´ı bezpeˇcnostn´ı prvek je takov´y, ˇze Hadoop vy-tvoˇr´ı tˇri kopie kaˇzd´eho bloku souboru a n´ahodnˇe je rozdˇel´ı do tˇrech nod˚u.

Jeden z hlavn´ıch c´ıl˚u HDFS je rychl´e zotaven´ı z hardwarov´ych chyb. Protoˇze jedna HDFS instance se m˚uˇze skl´adat z nˇekolika tis´ıc server˚u, selh´an´ı nˇekter´eho z nich je nevyhnuteln´e. HDFS byl postaven tak, aby detekoval tato selh´an´ı a au-tomaticky se z nich zotavil. Jin´ymi slovy, HDFS a ostatn´ı hlavn´ı moduly Hadoopu pˇredpokl´adaj´ı, ˇze hardwarov´e chyby mohou nastat, a t´ım p´adem jsou pˇripraveny na rychl´e a automatick´e zotaven´ı.

Hadoop YARN

Z´akladn´ı myˇslenkou Yarnu je rozdˇelen´ı funkcionalit ˇr´ızen´ı zdroj˚u a pl´anovaˇce ´uloh na rozdˇelen´e daemony. Myˇslenka je takov´a, ˇze existuje jeden centr´aln´ı spr´avce zdroj˚u a potom pro kaˇzd´y daemon jeden aplikaˇcn´ı spr´avce.

Hadoop MapReduce

MapReduce je model pro paraleln´ı zpracov´an´ı velk´eho mnoˇzstv´ı dat. Jelikoˇz s´eriov´e zpracov´an´ı velk´eho souboru je pomal´e, MapReduce je navrˇzen tak, aby zpracov´aval data paralelnˇe. Soubor je tedy rozdˇelen do blok˚u a kaˇzd´y je z´aroveˇn zpracov´av´an.

MapReduce se rozdˇeluje na dvˇe ˇc´asti. Prvn´ı je mapovac´ı, kdy se nejdˇr´ıve seskup´ı spoleˇcn´e atributy s hodnotami (key, value) podle kl´ıˇce. Takto seskupen´e ˇc´asti jsou n´aslednˇe dle ´ulohy posl´any na redukˇcn´ı ˇc´ast, kde jsou data jiˇz seˇrazena a pˇripravena k fin´aln´ı ´upravˇe. Napˇr´ıklad, mˇejme dataset mˇest s obchody a jejich trˇzbami. V ma-povac´ı ˇc´asti se seskup´ı stejn´a mˇesta (key) a jejich trˇzby. N´aslednˇe takto setˇr´ıdˇen´a mˇesta jsou zvl´aˇst’ posl´ana redukˇcn´ı ˇc´asti, kde kaˇzd´y

”reducer“ poˇc´ıt´a roˇcn´ı trˇzby pro jedno mˇesto.

Psan´ı MapReduce k´odu je podporov´ano jazyky Python, Java, Ruby a dalˇs´ımi.

Hadoop Common

Hadoop Common je kolekce bˇeˇzn´ych utilit a knihoven, kter´e podporuj´ı ostatn´ı mo-duly. Je to nezbytn´a ˇc´ast cel´eho frameworku spolu s Yarn, MapReduce a HDFS.

Je br´an jako z´akladn´ı/kl´ıˇcov´y modul cel´eho frameworku, protoˇze zprostˇredkov´av´a z´akladn´ı sluˇzby jako napˇr´ıklad abstrakci operaˇcn´ıho syst´emu, na kter´em je fra-mework nasazen, a i jeho souborov´eho syst´emu.

2.2.2 Hadoop ekosyst´ em - pˇ r´ıdavn´ e moduly

Pˇr´ıdavn´ych modul˚u je opravdu mnoho, proto jsou zde vyps´any pouze ty nejzn´amˇejˇs´ı, kter´e jsou s touto prac´ı do jist´e m´ıry spjaty.

Psan´ı MapReduce k´odu nen´ı ´uplnˇe snadn´e (je vyˇzadov´ana znalost nˇekter´eho programovac´ıho jazyku podporovan´eho MapReduce - Java, Python apod.). Proto vznikly n´astroje jako je Impala a Hive. Nam´ısto psan´ı k´odu tyto n´astroje umoˇzˇnuj´ı vyuˇz´ıt SQL pro dotazov´an´ı. Dalˇs´ı moˇznost´ı je Pig, kter´y umoˇzˇnuje analyzovat data pomoc´ı jednoduch´eho skriptovac´ıho jazyku.

Impala

Apache Impala je paralelnˇe zpracov´avaj´ıc´ı SQL dotazovac´ı n´astroj pro data, kter´a jsou uloˇzena v clusteru bˇeˇz´ıc´ım na Apache Hadoop. Impala podporuje HDFS

i Apache HBase, d´ale podporuje autentizaci pomoc´ı Kerberos. Nejvˇetˇs´ı v´yhoda Im-paly je zp˚usob dotazov´an´ı na HDFS. Impala totiˇz nevyuˇz´ıv´a MapReduce, a tedy se dotazuje na pˇr´ımo. T´ım dojde k uˇsetˇren´ı ˇcasu pro startov´an´ı MapReduce. Pouˇz´ıv´a se tedy pro rychl´e anal´yzy nebo pro velk´e datasety. ˇCasto je Impala pouˇz´ıv´ana jako n´astroj pro z´ısk´an´ı dat do Power BI pomoc´ı direct query.

Hive

Hive je pomalejˇs´ı alternativa k Impala, a to z d˚uvodu vyuˇzit´ı MapReduce. Hive interpreter pˇremˇen´ı SQL na MapReduce k´od, kter´y je pot´e spuˇstˇen na clusteru.

Jin´ymi slovy, pˇri kaˇzd´em dotazu je nutn´e spustit MapReduce job. Coˇz m˚uˇze b´yt opravdu pomal´e pˇri velk´em mnoˇzstv´ı dat. Proto se Hive sp´ıˇse pouˇz´ıv´a pˇri menˇs´ım mnoˇzstv´ı dat, nebo u aplikac´ı, kde nez´aleˇz´ı na ˇcase dokonˇcen´ı. Hive je optimalizovan´y pro spouˇstˇen´ı dlouh´ych batch-processing jobs.

Hue

Apache Hue je open source online editor, kter´y slouˇz´ı pro pr´aci s daty uloˇzen´ymi v HDFS pomoc´ı SQL. Umoˇzˇnuje pouˇz´ıt nˇekolik interpretr˚u (Impala, Hive, MySQL, SparkSQL a dalˇs´ı). Z´aroveˇn umoˇzˇnuje generov´an´ı graf˚u a statistik.