Indholdsfortegnelse:
Video: Hadoop bringer data – SAS bringer resten (1of4) 2025
I begyndelsen var store data og R ikke naturlige venner. R programmering kræver, at alle objekter lægges i hovedminnet på en enkelt maskine. Begrænsningerne af denne arkitektur opdages hurtigt, når store data bliver en del af ligningen.
Derimod mangler distribuerede filsystemer som Hadoop stærke statistiske teknikker, men er ideelle til skalering af komplekse operationer og opgaver. Vertikale skaleringsløsninger - der kræver investering i dyre supercomputer-hardware - kan ofte ikke konkurrere med den omkostningsværdige retur, der tilbydes af distribuerede råvareklynger.
For at være i overensstemmelse med begrænsningerne for enkeltmaskins begrænsninger i R-sproget, måtte datalogikere ofte begrænse analysen til kun en delmængde af de tilgængelige prøvedata. Forud for en dybere integration med Hadoop tilbød R sprogprogrammører en målestokstrategi til at overvinde de hukommelsesudfordringer, som store datasæt indebærer på enkelte maskiner.
Dette blev opnået ved brug af meddelelsesdæmpende systemer og personsøgning. Denne teknik er i stand til at lette arbejdet over datasæt for store til at lagre i hovedhukommelsen samtidigt; Den lave planlægningsmetode giver imidlertid en stejl indlæringskurve for dem, der ikke er fortrolige med parallelle programmeringsparadigmer.
Alternative tilgange søger at integrere R's statistiske evner med Hadops distribuerede klynger på to måder: Sammenkobling med SQL-spørgesprog og integration med Hadoop Streaming. Med førstnævnte er målet at udnytte eksisterende SQL data warehousing platforme som Hive og Pig. Disse skemaer forenkler Hadops jobprogrammering ved hjælp af SQL-sætninger med henblik på at levere højt niveau programmering til gennemførelse af statistiske job over Hadoop data.
For programmører, der ønsker at programmere MapReduce-job på sprog (inklusive R) bortset fra Java, er en anden mulighed at gøre brug af Hadops Streaming API. Brugerindgivet MapReduce-jobs undergår datatransformationer med hjælp fra UNIX-standardstrømme og serialisering, der garanterer Java-kompatibel input til Hadoop - uanset hvilket sprog der oprindeligt blev indlæst af programmøren.
Udviklere fortsætter med at udforske forskellige strategier til at udnytte MapReduces distribuerede beregningsevne og HDFS næsten grænseløse lagerkapacitet på måder, der kan udnyttes af R.
Integration af Hadoop med R er i gang med tilbud fra IBM (Big R som en del af BigInsights) og Revolution Analytics (Revolution R Enterprise). Bridging-løsninger, der integrerer programmering og forespørgsel på højt niveau med Hadoop, såsom RHive og RHadoop, er også tilgængelige.
Grundlæggende søger hvert system at levere R-sprogets dybe analytiske evner til meget større datasæt.
RHive
RHive-rammen fungerer som en bro mellem R-sprog og Hive. RHive leverer de rige statistiske biblioteker og algoritmer til R til data, der er gemt i Hadoop, ved at udvide Hives SQL-lignende forespørgselssprog (HiveQL) med R-specifikke funktioner. Gennem RHive-funktionerne kan du bruge HiveQL til at anvende R statistiske modeller til data i din Hadoop-klynge, som du har katalogiseret ved hjælp af Hive.
RHadoop
En anden open source-ramme til rådighed for R-programmører er RHadoop, en samling af pakker, der skal hjælpe med at styre distribution og analyse af data med Hadoop. Tre pakker med note - rmr2, rhdfs og rhbase - giver det meste af RHadops funktionalitet:
-
rmr2: Rmr2-pakken understøtter oversættelse af R-sproget til Hadoop-kompatible MapReduce-jobs (producerer effektiv kortrevideringskode på lavt niveau fra højere R-kode).
-
rhdfs: Rhdfs-pakken indeholder et R-sprog API til filhåndtering over HDFS-butikker. Brug af rhdfs kan brugere læse fra HDFS-butikker til en R-dataramme (matrix), og på samme måde skrive data fra disse R-matricer tilbage til HDFS-lagring.
-
rhbase: rhbase-pakker indeholder også et R-sprog-API, men deres mål i livet er at håndtere databasehåndtering for HBase-butikker, snarere end HDFS-filer.
Revolution R
Revolution R (ved Revolution Analytics) er et kommercielt R-tilbud med støtte til R-integration på Hadoop-distribuerede systemer. Revolution R lover at levere forbedret ydeevne, funktionalitet og anvendelighed til R på Hadoop. For at give en dyb analyse, der er beslægtet med R, gør Revolution R brug af selskabets ScaleR-bibliotek - en samling af statistiske analysalgoritmer udviklet specielt til store datasamlinger i virksomhedsskala.
ScaleR har til formål at levere hurtig udførelse af R-programkode på Hadoop-klynger, så R-udvikleren udelukkende kan fokusere på deres statistiske algoritmer og ikke på MapReduce. Derudover håndteres talrige analytiske opgaver, såsom dataforberedelse, visualisering og statistiske tests.
IBM BigInsights Big R
Big R tilbyder end-to-end integration mellem R og IBMs Hadoop-tilbud, BigInsights, der gør det muligt for R-udviklere at analysere Hadoop-data. Målet er at udnytte Rs programmeringssyntax og kodningsparadigmer, samtidig med at dataene styres ved ophold i HDFS. R datatyper tjener som proxy til disse datalagre, hvilket betyder, at R-udviklere ikke behøver at tænke på MapReduce-konstruktioner på lavt niveau eller på nogen Hadoop-specifikke skriptsprog (som Pig).
BigInsights Big R-teknologien understøtter flere datakilder - herunder flade filer, HBase- og Hive-lagringsformater - samtidig med at der udføres parallel og partitioneret udførelse af R-kode på tværs af Hadoop-klyngen. Det gemmer mange af kompleksiteten i de underliggende HDFS- og MapReduce-rammer, så Big R-funktionerne kan udføre omfattende dataanalyser - både på strukturerede og ustrukturerede data.
Endelig gør Scalability i Big Rs statistiske motor mulighed for, at R-udviklere kan benytte både foruddefinerede statistiske teknikker og forfattere til nye algoritmer selv.