Programmering

7 værktøjer til tæmning af store data med Hadoop

Oversvømmelserne, der ødelagde harddiskindustrien i Thailand, er nu et halvt år gammel, og priserne pr. Terabyte falder endelig igen. Det betyder, at data begynder at ophobes, og folk rundt på kontoret vil undre sig over, hvad der kan gøres med det. Måske er der nogle indsigter i disse logfiler? Måske vil en smule statistisk analyse finde nogle guldklumper, der er begravet i al den støj? Måske kan vi finde nok forandring begravet i sofaens puder i disse filer til at give os alle et løft?

Branchen har nu et buzzword, "big data", for hvordan vi skal gøre noget med den enorme mængde information, der hobes op. "Big data" erstatter "business intelligence", som undergik "rapportering", som satte en pænere glans på "regneark", der slog de gammeldags "udskrifter" ud. Ledere, der for længe siden har studeret udskrifter, ansætter nu matematikere, der hævder at være big data-specialister til at hjælpe dem med at løse det samme gamle problem: Hvad sælger og hvorfor?

[Også på: Enterprise Hadoop: Større databehandling gjort lettere | Udforsk de aktuelle tendenser og løsninger i BI med sin interaktive Business Intelligence iGuide. | Opdag hvad der er nyt i forretningsapplikationer med 's Technology: Applications-nyhedsbrev. ]

Det er ikke rimeligt at antyde, at disse buzzwords er enkle erstatninger for hinanden. Big data er en mere kompliceret verden, fordi skalaen er meget større. Oplysningerne spredes normalt over et antal servere, og arbejdet med at kompilere dataene skal koordineres mellem dem. Tidligere blev arbejdet stort set delegeret til databasesoftwaren, som ville bruge sin magiske JOIN-mekanisme til at kompilere tabeller og derefter tilføje kolonnerne, inden de afleverede rektanglet af data til rapporteringssoftwaren, der ville paginere det. Dette var ofte sværere end det lyder. Databaseprogrammerere kan fortælle dig historierne om komplicerede JOIN-kommandoer, der ville låse deres database i timevis, da den forsøgte at producere en rapport til chefen, der bare ville have hans kolonner.

Spillet er meget anderledes nu. Hadoop er et populært værktøj til at organisere serverne og rackene, og NoSQL-databaser er populære værktøjer til lagring af data på disse rack. Disse mekanismer kan være meget mere kraftfulde end den gamle enkeltmaskine, men de er langt fra så polerede som de gamle databaseservere. Selvom SQL kan være kompliceret, var det ofte meget enklere at skrive JOIN-forespørgslen til SQL-databaser end at samle information fra snesevis af maskiner og kompilere det til et sammenhængende svar. Hadoop-job er skrevet i Java, og det kræver et andet niveau af sofistikering. Værktøjerne til at tackle big data er lige begyndt at pakke denne distribuerede computerkraft på en måde, der er lidt nemmere at bruge.

Mange af de store dataværktøjer arbejder også med NoSQL-datalagre. Disse er mere fleksible end traditionelle relationsdatabaser, men fleksibiliteten er ikke så meget som en afvigelse fra fortiden som Hadoop. NoSQL-forespørgsler kan være enklere, fordi databasedesignet afskrækker den komplicerede tabelstruktur, der driver kompleksiteten ved at arbejde med SQL. Den største bekymring er, at software skal foregribe muligheden for, at ikke hver række vil have nogle data for hver kolonne.

Den største udfordring kan være at håndtere forventningerne opbygget af den store film "Moneyball". Alle chefer har set det og absorberet beskeden om, at nogle kloge statistikker kan gøre et lille budgethold til en verdensserie-vinder. Husk ikke, at Oakland Athletics aldrig vandt World Series under "Moneyball" æraen. Det er magien i Michael Lewis 'prosa. Cheferne tænker alle, "Måske hvis jeg kan få god statistik, vil Hollywood ansætte Brad Pitt til at spille mig i filmversionen."

Ingen af ​​softwaren i denne samling kommer tæt på at lokke Brad Pitt til at bede sin agent om en kopi af manuskriptet til filmversionen af ​​dit Hadoop-job. Det skal komme indefra dig eller de andre mennesker, der arbejder på projektet. At forstå dataene og finde det rigtige spørgsmål at stille er ofte meget mere kompliceret end at få dit Hadoop-job til at køre hurtigt. Det siger virkelig noget, fordi disse værktøjer kun er halvdelen af ​​jobbet.

For at få fat i løftet om marken downloadede jeg nogle big data-værktøjer, blandet i data og stirrede derefter på svarene til Einstein-grade indsigt. Oplysningerne kom fra logfiler til webstedet, der sælger nogle af mine bøger (wayner.org), og jeg ledte efter en idé om, hvad der solgte, og hvorfor. Så jeg pakkede softwaren ud og stillede spørgsmålene.

 

Big data-værktøjer: Jaspersoft BI Suite

Jaspersoft-pakken er en af ​​open source-lederne til at producere rapporter fra databasekolonner. Softwaren er velpoleret og allerede installeret i mange virksomheder, der omdanner SQL-tabeller til PDF-filer, som alle kan undersøge på møder.

Virksomheden hopper på big data-toget, og det betyder at tilføje et softwarelag for at forbinde sin rapportgenererende software til de steder, hvor big data gemmes. JasperReports Server tilbyder nu software til at suge data fra mange af de store lagerplatforme, herunder MongoDB, Cassandra, Redis, Riak, CouchDB og Neo4j. Hadoop er også godt repræsenteret, hvor JasperReports leverer et Hive-stik, der kan nås inde i HBase.

Denne indsats føles som om den stadig starter - mange sider i dokumentationswiki er tomme, og værktøjerne er ikke fuldt integreret. Den visuelle forespørgselsdesigner fungerer for eksempel ikke endnu med Cassandras CQL. Du kan skrive disse forespørgsler manuelt.

Når du først har fået dataene fra disse kilder, koger Jaspersofts server det ned til interaktive tabeller og grafer. Rapporterne kan være meget sofistikerede interaktive værktøjer, der lader dig bore ned i forskellige hjørner. Du kan bede om flere og flere detaljer, hvis du har brug for dem.

Dette er et veludviklet hjørne af softwareverdenen, og Jaspersoft udvider sig ved at gøre det lettere at bruge disse sofistikerede rapporter med nyere datakilder. Jaspersoft tilbyder ikke særlig nye måder at se på dataene på, bare mere sofistikerede måder at få adgang til data, der er gemt nye steder. Jeg fandt dette overraskende nyttigt. Aggregationen af ​​mine data var nok til at give grundlæggende mening om, hvem der skulle til webstedet, og hvornår de skulle derhen.

 

Big data-værktøjer: Pentaho Business Analytics

Pentaho er en anden softwareplatform, der startede som en rapportgenererende motor; det er ligesom JasperSoft at forgrene sig til big data ved at gøre det lettere at absorbere information fra de nye kilder. Du kan tilslutte Pentahos værktøj til mange af de mest populære NoSQL-databaser som MongoDB og Cassandra. Når databaserne er tilsluttet, kan du trække og slippe kolonnerne i visninger og rapporter, som om oplysningerne kom fra SQL-databaser.

Jeg fandt de klassiske sorterings- og sigtetabeller meget nyttige til at forstå, hvem der brugte mest tid på mit websted. Simpelthen at sortere efter IP-adresse i logfilerne afslørede, hvad de tunge brugere gjorde.

Pentaho leverer også software til tegning af HDFS-fildata og HBase-data fra Hadoop-klynger. Et af de mere spændende værktøjer er den grafiske programmeringsgrænseflade kendt som enten Kedel eller Pentaho Data Integration. Den har en række indbyggede moduler, som du kan trække og slippe på et billede og derefter forbinde dem. Pentaho har grundigt integreret Hadoop og de andre kilder i dette, så du kan skrive din kode og sende den ud for at udføre på klyngen.

 

Big data-værktøjer: Karmasphere Studio og Analyst

Mange af de store dataværktøjer begyndte ikke livet som rapporteringsværktøjer. Karmasphere Studio er for eksempel et sæt plug-ins bygget oven på Eclipse. Det er en specialiseret IDE, der gør det lettere at oprette og køre Hadoop-job.

Jeg havde en sjælden følelse af glæde, da jeg begyndte at konfigurere et Hadoop-job med dette udviklerværktøj. Der er en række faser i livet af et Hadoop-job, og Karmasphere-værktøjer fører dig gennem hvert trin og viser de delvise resultater undervejs. Jeg gætter på, at debuggere altid har gjort det muligt for os at kigge ind i mekanismen, da den udfører sit arbejde, men Karmasphere Studio gør noget lidt bedre: Når du konfigurerer arbejdsgangen, viser værktøjerne testdataens tilstand ved hvert trin. Du ser, hvordan de midlertidige data vil se ud, når de skæres fra hinanden, analyseres og derefter reduceres.

Karmasphere distribuerer også et værktøj kaldet Karmasphere Analyst, som er designet til at forenkle processen med pløjning gennem alle data i en Hadoop-klynge. Den leveres med mange nyttige byggesten til programmering af et godt Hadoop-job, som underrutiner til komprimering af zip-logfiler. Derefter strenger det dem sammen og parametrerer Hive-opkaldene for at producere en tabel med output til gennemlæsning.

 

Big data-værktøjer: Talend Open Studio

Talend tilbyder også en Eclipse-baseret IDE til at stramme databehandlingsjob sammen med Hadoop. Dens værktøjer er designet til at hjælpe med dataintegration, datakvalitet og datahåndtering, alt sammen med underrutiner, der er indstillet til disse job.

Talend Studio giver dig mulighed for at opbygge dine job ved at trække og slippe små ikoner på et lærred. Hvis du vil hente et RSS-feed, henter Talends komponent RSS og tilføjer proxying, hvis det er nødvendigt. Der er snesevis af komponenter til indsamling af information og snesevis mere til at gøre ting som en "fuzzy match". Derefter kan du output resultaterne.

At stramme blokke visuelt kan være simpelt, når du får en fornemmelse for, hvad komponenterne faktisk gør og ikke gør. Dette var lettere for mig at finde ud af, da jeg begyndte at se på kildekoden, der blev samlet bag lærredet. Talend lader dig se dette, og jeg synes, det er et ideelt kompromis. Visuel programmering kan virke som et højt mål, men jeg har fundet ud af, at ikonerne aldrig kan repræsentere mekanismerne med nok detaljer til at gøre det muligt at forstå, hvad der foregår. Jeg har brug for kildekoden.

Talend vedligeholder også TalendForge, en samling af open source-udvidelser, der gør det lettere at arbejde med virksomhedens produkter. De fleste af værktøjerne ser ud til at være filtre eller biblioteker, der forbinder Talends software til andre større produkter såsom Salesforce.com og SugarCRM. Du kan suge information fra disse systemer ind i dine egne projekter, hvilket forenkler integrationen.

 

Big data-værktøjer: Skytree Server

Ikke alle værktøjerne er designet til at gøre det lettere at stramme kode med visuelle mekanismer. Skytree tilbyder et bundt, der udfører mange af de mere sofistikerede maskinlæringsalgoritmer. Alt, hvad der kræves, er at skrive den rigtige kommando i en kommandolinje.

Skytree er mere fokuseret på tarmene end den skinnende GUI. Skytree Server er optimeret til at køre en række klassiske maskinlæringsalgoritmer på dine data ved hjælp af en implementering, som virksomheden hævder kan være 10.000 gange hurtigere end andre pakker. Det kan søge gennem dine data på udkig efter klynger af matematisk lignende emner og derefter invertere dette for at identificere outliers, der kan være problemer, muligheder eller begge dele. Algoritmerne kan være mere præcise end mennesker, og de kan søge i store mængder data på udkig efter de poster, der er lidt ud over det sædvanlige. Dette kan være svindel - eller en særlig god kunde, der bruger og bruger.

Den gratis version af softwaren tilbyder de samme algoritmer som den proprietære version, men den er begrænset til datasæt på 100.000 rækker. Dette skal være tilstrækkeligt til at fastslå, om softwaren passer godt sammen.

 

Big data-værktøjer: Tableau Desktop og Server

Tableau Desktop er et visualiseringsværktøj, der gør det nemt at se på dine data på nye måder, derefter skære det op og se på det på en anden måde. Du kan endda blande dataene med andre data og undersøge dem i endnu et lys. Værktøjet er optimeret til at give dig alle kolonnerne til dataene og lade dig blande dem, inden du fylder det i en af ​​de snesevis af grafiske skabeloner, der leveres.

Tableau Software begyndte at omfavne Hadoop for flere versioner siden, og nu kan du behandle Hadoop "ligesom du ville med enhver dataforbindelse." Tableau stoler på Hive for at strukturere forespørgslerne og prøver derefter sit bedste for at cache så meget information i hukommelsen for at gøre det muligt for værktøjet at være interaktivt. Mens mange af de andre rapporteringsværktøjer er bygget på en tradition for at generere rapporterne offline, vil Tableau tilbyde en interaktiv mekanisme, så du kan skære og skære dine data igen og igen. Caching hjælper med at håndtere noget af latenstiden i en Hadoop-klynge.

Softwaren er velpoleret og æstetisk tiltalende. Jeg befandt mig ofte i at reslicere dataene bare for at se dem i endnu en graf, selvom der ikke var meget nyt at lære ved at skifte fra et cirkeldiagram til et søjlediagram og derover. Softwareteamet inkluderer klart et antal mennesker med noget kunstnerisk talent.

 

Big data-værktøjer: Splunk

Splunk er lidt anderledes end de andre muligheder. Det er ikke ligefrem et rapportgenererende værktøj eller en samling af AI-rutiner, selvom det udfører meget af det undervejs. Det opretter et indeks over dine data, som om dine data var en bog eller en tekstblok. Ja, databaser bygger også indekser, men Splunk's tilgang er meget tættere på en tekstsøgningsproces.

Denne indeksering er overraskende fleksibel. Splunk kommer allerede indstillet på min særlige applikation, hvilket giver mening om logfiler, og det sugede dem lige op. Det sælges også i en række forskellige løsningspakker, herunder en til overvågning af en Microsoft Exchange-server og en anden til at opdage webangreb. Indekset hjælper med at korrelere dataene i disse og flere andre almindelige scenarier på serversiden.