Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Markedet for distribueret computing og big data vokser, hvis man skal tro statistikkerne, med 18-19% om året. Det betyder, at spørgsmålet om valg af software til disse formål stadig er relevant. I dette indlæg vil vi starte med, hvorfor distribueret computing er nødvendigt, se nærmere på valget af software, fortælle om anvendelsen af Hadoop ved hjælp af Cloudera, og til sidst diskutere valg af hardware og hvordan det påvirker ydeevnen på forskellige måder.

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.
Hvorfor er distribueret computing nødvendigt i almindelig forretning? Her er svaret både enkelt og kompliceret. Enkelt — fordi vi i de fleste tilfælde udfører relativt enkle beregninger pr. enhed information. Kompliceret — fordi der er så meget information. Rigtig meget. Som følge heraf skal vi behandle terabytes af data i 1000 strømme.Dermed er anvendelsesscenarierne ret universelle: beregninger kan anvendes overalt, hvor der er behov for at tage højde for et stort antal metric på et endnu større datasæt.

Et af de seneste eksempler er Dodo Pizza-kæden at de celler, der findes der, er makrofager, en del af immunsystemet. Flere måneder senere fremlagde David Dickman og Le-Cing Wu der har tilpasset indkøb baseret på analysen af kundernes ordredata, som viser, at brugerne normalt kun arbejder med seks grundlæggende sæt ingredienser plus nogle tilfældige, når de vælger en pizza med vilkårlig topping. Desuden har det gjort det lettere for dem at anbefale ekstra varer til brugerne under bestillingsprocessen, hvilket har øget indtjeningen.

Et andet eksempel: af deciderede enoghalvtredsere siger os, at kun 20% af dem blev grundlagt af én person. Men er det værd at tage højde for denne værdi, når hver milliard-dollar virksomhed er en unik og uforlignelig historie? Desuden er en stor statistisk stikprøve altid mere præcis. Mødet er nedbrudt. produktpositioner har gjort det muligt for H&M at reducere sortimentet i enkelte butikker med 40%, mens salget er forblevet på samme niveau. Dette blev opnået ved at udelukke produkter, der sælger dårligt, hvor der også blev taget hensyn til sæsonbestemthed.

Valg af værktøj

Den industrielle standard for denne slags beregning er Hadoop. Hvorfor? Fordi Hadoop er et fremragende, veldokumenteret framework (selv Habr udgiver mange detaljerede artikler om emnet), som kommer med et sæt værktøjer og biblioteker. Du kan indtaste enorme mængder både strukturerede og ustrukturerede data, og systemet vil selv fordele dem mellem de beregningsmæssige ressourcer. Disse ressourcer kan desuden tilføjes eller fjernes når som helst — den horisontale skalerbarhed i aktion.

I 2017 indgik det indflydelsesrige konsulentfirma Gartner at, at Hadoop snart vil uddø. Årsagen er temmelig banal: analytikere mener, at virksomheder vil migrere massivt til skyen, da de dér kan betale for faktisk brug af beregningskapacitet. Den anden vigtige faktor, der angiveligt kan "begrave" Hadoop, er hastigheden. Fordi løsninger som Apache Spark eller Google Cloud DataFlow arbejder hurtigere end MapReduce, som er grundlaget for Hadoop.

Hadoop hviler på flere søjler, hvoraf de mest markante er teknologierne MapReduce (et distribueret datasystem til beregninger mellem servere) og filsystemet HDFS. Det sidste er specielt designet til at lagre information fordelt mellem klyngens noder: hver blok af fast størrelse kan lagres på flere noder, og takket være replikation opretholdes systemets robusthed over for fejl på enkelte noder. I stedet for en filtabel bruges en specialiseret server, kaldet NameNode.

På illustrationen nedenfor vises skemaet for arbejdet med MapReduce. I det første trin opdeles dataene efter et bestemt kriterium, i det andet distribueres de efter beregningskapaciteter, og i det tredje sker beregningen.

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.
MapReduce blev oprindeligt skabt af Google til deres søgesystem. Senere blev MapReduce åbnet som open source, og Apache tog over projektet. Google migrerede gradvis til andre løsninger. En interessant detalje: i øjeblikket har Google et projekt ved navn Google Cloud Dataflow, der markedsføres som det næste skridt efter Hadoop, som en hurtig erstatning.

Ved nærmere eftersyn ses det, at Google Cloud Dataflow er baseret på en variant af Apache Beam, hvor Apache Beam indeholder et vel-dokumenteret framework, Apache Spark, hvilket gør, at man kan tale om praktisk talt samme hastighed ved udførelse af løsninger. Og Apache Spark fungerer fremragende på HDFS-filsystemet, hvilket muliggør deployment på Hadoop-servere.

Lad os tilføje mængden af dokumentation og færdige løsninger for Hadoop og Spark mod Google Cloud Dataflow, og valget af værktøjet bliver åbenbart. Ydermere kan ingeniører selv beslutte, hvilken kode — til Hadoop eller Spark — de vil udføre, baseret på opgaven, erfaring og kvalifikation.

Skyen eller lokal server

Tendensen mod den generelle overgang til skyen har skabt et interessant begreb som Hadoop-as-a-service. I dette scenarie er administrationen af de tilsluttede servere blevet meget vigtig. For desværre, på trods af sin popularitet, er ren Hadoop et ret komplekst værktøj at opsætte, da der er mange ting, der skal gøres manuelt. For eksempel skal serverne konfigureres individuelt, overvåges, og mange parametre skal indstilles omhyggeligt. Generelt er det noget for entusiaster, og der er en stor risiko for at lave fejl eller overse noget.

Derfor har forskellige distributioner fået stor popularitet, som oprindeligt leveres med brugervenlige deployments- og administrationsværktøjer. En af de mest populære distributioner, som understøtter Spark og forenkler det hele, er Cloudera. Den har både betalte og gratis versioner - og i den gratis version er al den grundlæggende funktionalitet tilgængelig, uden begrænsninger på antallet af noder.

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Under opsætningen vil Cloudera Manager oprette SSH-forbindelser til dine servere. Et interessant punkt er, at det under installationen er bedst at angive, at den skal udføres med såkaldte parceller: specielle pakker, der hver indeholder alle de nødvendige komponenter, konfigureret til at arbejde sammen. I bund og grund er det en forbedret version af en pakkemanager.

Efter installationen får vi et clusters kontrolpanel, hvor man kan se telemetri for klyngerne, installerede tjenester, plus at du kan tilføje/fjerne ressourcer og redigere klyngens konfiguration.

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Resultatet er, at du står over for skæringen af den raket, der vil føre dig til BigData's lysere fremtid. Men før vi siger «lad os gå», lad os kigge under motorhjelmen.

Krav til hardware

På deres hjemmeside nævner Cloudera forskellige mulige konfigurationer. De generelle principper, som de bygger på, er vist i illustrationen:

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.
Et optimistisk scenarie kan blive skadet af MapReduce. Hvis man ser nærmere på diagrammet fra det foregående afsnit, bliver det tydeligt, at næsten alle gange kan en MapReduce-opgave støde på et 'flaskehals' problem, når data læses fra disken eller nettet. Dette er også nævnt i Clouderas blog. Derfor er ind- og udgangshastighed meget vigtig for hurtige beregninger, herunder via Spark, som ofte anvendes til realtidsberegninger. Derfor er det vigtigt, når man bruger Hadoop, at der findes balancerede og hurtige maskiner i klyngen, hvilket ikke altid kan garanteres i cloud-infrastrukturen.

Balancen i belastningsfordelingen opnås ved at bruge Openstack-virtualisering på servere med kraftige multikern CPU'er. Data-noderne tildeles deres egne processorressourcer og specifikke diske. I vores løsning Atos Codex Data Lake Engine opnås omfattende virtualisering, hvilket giver os fordele både i forhold til ydeevne (netværksinfrastrukturen har minimal indflydelse) og TCO (unødvendige fysiske servere elimineres).

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.
Ved brug af BullSequana S200-servere opnår vi en jævnere belastning, som mangler visse flaskehalse. Den minimale konfiguration inkluderer 3 BullSequana S200-servere, hver med to JBOD, plus yderligere S200-servere kan tilsluttes som option, som indeholder fire data-noder hver. Her er et eksempel på belastning i TeraGen-testen:

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Test med forskellige datamængder og replikationsværdier viser ens resultater med hensyn til belastningsfordeling mellem klyngens noder. Nedenfor er et diagram, der viser diskadgangsfordeling under performance-tests.

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Beregnede resultater er baseret på den minimale konfiguration bestående af 3 BullSequana S200-servere. Den inkluderer 9 datanoder og 3 primære noder samt reserverede virtuelle maskiner til potentiel implementering af beskyttelse baseret på OpenStack Virtualization. TeraSort-testresultatet: blokstørrelse 512 MB med en replikationsfaktor på tre og kryptering tager 23,1 minutter.

Hvordan kan systemet udvides? Der er forskellige former for udvidelser til Data Lake Engine:

  • Dataoverførselsnoder: for hver 40 TB nyttig plads
  • Analytiske noder med mulighed for installation af grafikkort
  • Andre muligheder afhængigt af virksomhedens behov (for eksempel hvis Kafka er nødvendigt og lignende)

Hvad er særligt ved Cloudera, og hvordan tilbereder man det.

Atos Codex Data Lake Engine omfatter både serverne selv og det forudinstallerede software, der inkluderer Cloudera-pakken med licens; selve Hadoop, OpenStack med virtuelle maskiner baseret på RedHat Enterprise Linux-kernen, systemer til datagendannelse og backup (herunder ved hjælp af en backup-node og Cloudera BDR — Backup and Disaster Recovery). Atos Codex Data Lake Engine blev den første løsning med virtualisering, der blev certificeret. Cloudera.

Hvis du er interesseret i flere detaljer, vil vi være glade for at besvare dine spørgsmål i kommentarerne.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster