Čo je zvláštne na Cloudera a ako ju variť

Trh s distribuovanou výpočtovou technikou a veľkými dátami, podľa štatistika, rastie o 18-19% ročne. To znamená, že otázka výberu softvéru na tieto účely zostáva aktuálna. V tomto príspevku začneme tým, prečo je potrebný distribuovaný výpočtový systém, prejdeme podrobnejšie o výbere softvéru, porozprávame sa o používaní Hadoop pomocou Cloudera a nakoniec sa porozprávame o výbere hardvéru a o tom, ako rôznymi spôsobmi ovplyvňuje výkon.

Čo je zvláštne na Cloudera a ako ju variť
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é spracovávať terabajty údajov v 1000 vláknach. Prípady použitia sú teda celkom univerzálne: výpočty sa dajú použiť všade tam, kde je potrebné brať do úvahy veľké množstvo metrík na ešte väčšom poli údajov.

Jeden z nedávnych príkladov: sieť pizzerií ​​Dodo Pizza určený na základe analýzy databázy objednávok zákazníkov, že pri výbere pizze s náhodnou polevou užívatelia zvyčajne pracujú len so šiestimi základnými sadami ingrediencií plus pár náhodných. V súlade s tým prispôsobila pizzéria svoje nákupy. Okrem toho dokázala lepšie odporučiť ďalšie produkty ponúkané používateľom počas fázy objednávania, čo zvýšilo zisky.

Ďalší príklad: analýza produktové položky umožnili predajni H&M zredukovať sortiment v jednotlivých predajniach o 40 % pri zachovaní úrovne predaja. Dosiahlo sa to vylúčením zle predávaných položiek a pri výpočtoch sa zohľadnila sezónnosť.

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 uzavrelže Hadoop čoskoro zastará. Dôvod je celkom banálny: analytici sa domnievajú, že spoločnosti budú hromadne migrovať do cloudu, keďže tam budú môcť platiť za využívanie výpočtového výkonu. Druhým dôležitým faktorom, ktorý údajne môže Hadoop „pochovať“, je jeho rýchlosť. Pretože možnosti ako Apache Spark alebo Google Cloud DataFlow sú rýchlejšie ako MapReduce, ktorý je základom Hadoopu.

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.

Čo je zvláštne na Cloudera a ako ju variť
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.

Čo je zvláštne na Cloudera a ako ju variť

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.

Čo je zvláštne na Cloudera a ako ju variť

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:

Čo je zvláštne na Cloudera a ako ju variť
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).

Čo je zvláštne na Cloudera a ako ju variť
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:

Čo je zvláštne na Cloudera a ako ju variť

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.

Čo je zvláštne na Cloudera a ako ju variť

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)

Čo je zvláštne na Cloudera a ako ju variť

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é Cloudera.

Ak vás zaujímajú podrobnosti, radi odpovieme na naše otázky v komentároch.

Zdroj: hab.com

Pridať komentár