Trh s distribuovanou výpočtovou technikou a veľkými dátami, podľa
Prečo je v bežnom podnikaní potrebná distribuovaná výpočtová technika? Všetko je tu jednoduché a komplikované zároveň. Jednoduché – pretože vo väčšine prípadov vykonávame relatívne jednoduché výpočty na jednotku informácie. Je to ťažké, pretože takýchto informácií je veľa. Toľko. V dôsledku toho je to nevyhnutné
Jeden z nedávnych príkladov: sieť pizzerií Dodo Pizza
Ďalší príklad:
Výber nástroja
Priemyselným štandardom pre tento typ výpočtovej techniky je Hadoop. prečo? Pretože Hadoop je vynikajúci, dobre zdokumentovaný rámec (ten istý Habr poskytuje veľa podrobných článkov na túto tému), ktorý je sprevádzaný celým súborom nástrojov a knižníc. Môžete zadávať obrovské súbory štruktúrovaných aj neštruktúrovaných údajov a samotný systém ich rozdelí medzi výpočtovú silu. Navyše, tieto rovnaké kapacity je možné kedykoľvek zvýšiť alebo vypnúť – rovnaká horizontálna škálovateľnosť v akcii.
V roku 2017 vplyvná poradenská spoločnosť Gartner
Hadoop stojí na niekoľkých pilieroch, z ktorých najvýznamnejšie sú technológie MapReduce (systém na distribúciu údajov pre výpočty medzi servermi) a súborový systém HDFS. Ten je špeciálne navrhnutý na ukladanie informácií distribuovaných medzi uzlami klastra: každý blok pevnej veľkosti je možné umiestniť na niekoľko uzlov a vďaka replikácii je systém odolný voči zlyhaniam jednotlivých uzlov. Namiesto tabuľky súborov sa používa špeciálny server s názvom NameNode.
Obrázok nižšie ukazuje, ako MapReduce funguje. V prvej fáze sú dáta rozdelené podľa určitého kritéria, v druhej fáze sú rozdelené podľa výpočtového výkonu av tretej fáze prebieha výpočet.
MapReduce bol pôvodne vytvorený spoločnosťou Google pre potreby vyhľadávania. Potom sa MapReduce stal voľným kódom a Apache prevzal projekt. No a Google postupne migroval na iné riešenia. Zaujímavá maličkosť: Google má v súčasnosti projekt s názvom Google Cloud Dataflow, ktorý je ďalším krokom po Hadoop, ako jeho rýchla náhrada.
Bližší pohľad ukazuje, že Google Cloud Dataflow je založený na variácii Apache Beam, zatiaľ čo Apache Beam obsahuje dobre zdokumentovaný rámec Apache Spark, ktorý nám umožňuje hovoriť o takmer rovnakej rýchlosti vykonávania riešení. Apache Spark funguje perfektne na súborovom systéme HDFS, čo umožňuje jeho nasadenie na serveroch Hadoop.
Pridajte sem objem dokumentácie a hotové riešenia pre Hadoop a Spark verzus Google Cloud Dataflow a výber nástroja bude zrejmý. Okrem toho sa inžinieri môžu sami rozhodnúť, ktorý kód - pre Hadoop alebo Spark - by mali spustiť, pričom sa zamerajú na úlohu, skúsenosti a kvalifikáciu.
Cloud alebo lokálny server
Trend k všeobecnému prechodu na cloud dal dokonca vzniknúť takému zaujímavému pojmu ako Hadoop-as-a-service. V takomto scenári sa stala veľmi dôležitá správa pripojených serverov. Pretože, bohužiaľ, napriek svojej popularite je čistý Hadoop pomerne zložitý nástroj na konfiguráciu, pretože veľa sa musí robiť ručne. Napríklad konfigurujte servery individuálne, monitorujte ich výkon a starostlivo nakonfigurujte mnohé parametre. Vo všeobecnosti je práca pre amatéra a je veľká šanca, že sa niekde pokazí alebo niečo prehliadne.
Preto sú veľmi obľúbené rôzne distribučné sady, ktoré sú spočiatku vybavené pohodlnými nástrojmi na nasadenie a správu. Jednou z najpopulárnejších distribúcií, ktorá podporuje Spark a všetko uľahčuje, je Cloudera. Má platenú aj bezplatnú verziu – a v tej druhej sú dostupné všetky základné funkcie bez obmedzenia počtu uzlov.
Počas nastavenia sa Cloudera Manager pripojí cez SSH k vašim serverom. Zaujímavý bod: pri inštalácii je lepšie špecifikovať, aby sa vykonávala tzv parsels: špeciálne balíky, z ktorých každý obsahuje všetky potrebné komponenty nakonfigurované na vzájomnú spoluprácu. V podstate ide o vylepšenú verziu správcu balíkov.
Po inštalácii dostaneme konzolu na správu klastra, kde môžete vidieť telemetriu klastra, nainštalované služby, navyše môžete pridávať/odstraňovať prostriedky a upravovať konfiguráciu klastra.
Výsledkom je, že sa pred vami objaví kabína rakety, ktorá vás vezme do svetlej budúcnosti BigData. Ale skôr ako povieme „poďme“, presuňme sa pod kapotu.
Hardvérové požiadavky
Cloudera na svojej stránke uvádza rôzne možné konfigurácie. Všeobecné princípy, podľa ktorých sú postavené, sú znázornené na obrázku:
MapReduce dokáže rozmazať tento optimistický obraz. Ak sa znova pozriete na diagram z predchádzajúcej časti, je jasné, že takmer vo všetkých prípadoch môže úloha MapReduce naraziť na úzke miesto pri čítaní údajov z disku alebo zo siete. Uvádza sa to aj na blogu Cloudera. Výsledkom je, že pre akékoľvek rýchle výpočty, vrátane cez Spark, ktorý sa často používa na výpočty v reálnom čase, je rýchlosť I/O veľmi dôležitá. Preto je pri používaní Hadoop veľmi dôležité, aby cluster obsahoval vyvážené a rýchle stroje, čo, mierne povedané, nie je vždy zabezpečené v cloudovej infraštruktúre.
Rovnováha v rozdelení záťaže sa dosahuje použitím virtualizácie Openstack na serveroch s výkonnými viacjadrovými CPU. Dátovým uzlom sú pridelené vlastné procesorové prostriedky a špecifické disky. V našom rozhodnutí Atos Codex Data Lake Engine Dosahuje sa široká virtualizácia, čo je dôvod, prečo profitujeme z hľadiska výkonu (minimalizuje sa vplyv sieťovej infraštruktúry) aj z hľadiska TCO (odpadajú ďalšie fyzické servery).
Pri používaní serverov BullSequana S200 získame veľmi rovnomerné zaťaženie bez niektorých prekážok. Minimálna konfigurácia zahŕňa 3 servery BullSequana S200, každý s dvoma JBOD, plus ďalšie S200 obsahujúce štyri dátové uzly sú voliteľne pripojené. Tu je príklad zaťaženia v teste TeraGen:
Testy s rôznymi objemami údajov a hodnotami replikácie ukazujú rovnaké výsledky, pokiaľ ide o rozloženie zaťaženia medzi uzlami klastra. Nižšie je uvedený graf rozdelenia prístupu na disk podľa výkonnostných testov.
Výpočty boli vykonané na základe minimálnej konfigurácie 3 serverov BullSequana S200. Zahŕňa 9 dátových uzlov a 3 hlavné uzly, ako aj vyhradené virtuálne stroje pre prípad nasadenia ochrany na báze OpenStack Virtualization. Výsledok testu TeraSort: veľkosť bloku 512 MB replikačný faktor rovný trom so šifrovaním je 23,1 minúty.
Ako je možné systém rozšíriť? Pre Data Lake Engine sú k dispozícii rôzne typy rozšírení:
- Dátové uzly: na každých 40 TB využiteľného priestoru
- Analytické uzly s možnosťou inštalácie GPU
- Ďalšie možnosti v závislosti od obchodných potrieb (napríklad ak potrebujete Kafku a podobne)
Atos Codex Data Lake Engine obsahuje samotné servery aj predinštalovaný softvér vrátane licencovanej súpravy Cloudera; Samotný Hadoop, OpenStack s virtuálnymi strojmi založenými na jadre RedHat Enterprise Linux, replikácia dát a zálohovacie systémy (vrátane použitia záložného uzla a Cloudera BDR - Backup and Disaster Recovery). Atos Codex Data Lake Engine sa stal prvým virtualizačným riešením, ktoré bolo certifikované
Ak vás zaujímajú podrobnosti, radi odpovieme na naše otázky v komentároch.
Zdroj: hab.com