Hlboký ponor do prasaťa



Tento blogový príspevok je hlbokým ponorom do programu Pig a jeho funkcií. Nájdete ukážku toho, ako môžete pracovať na Hadoope pomocou programu Pig bez závislosti na Jave.

Jedným z najväčších dôvodov, prečo popularita Hadoopu v poslednej dobe prudko vzrástla, je skutočnosť, že funkcie ako Pig a Hive bežia navrchu a umožňujú neprogramátorom funkcie, ktoré boli predtým exkluzívne pre programátorov Java. Tieto vlastnosti boli dôsledkom rastúceho dopytu po profesionáloch spoločnosti Hadoop. Medzi ďalšie funkcie, ktoré používajú profesionáli Hadoop z iných prostredí ako Java, patria Flume, Sqoop, HBase a Oozie.





Ak chcete pochopiť, prečo na to, aby ste sa naučili program Hadoop, nepotrebujete jazyk Java, vyskúšajte to tento blog .

1 História ošípaných



spustiť úľový dotaz z príkazového riadku

Poďme pochopiť, ako tieto funkcie fungujú.

Všetci vieme, že znalosti programovania sú pri písaní kódov MapReduce nevyhnutnosťou. Čo však robiť, ak mám nástroj, ktorý dokáže kódovanie, ak poskytnem iba podrobnosti? To je miesto, kde prasa prejavuje svoju svalovú silu. Pig používa platformu nazvanú Pig Latin, ktorá abstrahuje programovanie z idiómu Java MapReduce do notácie, vďaka ktorej je programovanie MapReduce na vysokej úrovni, podobne ako v prípade SQL pre systémy RDBMS. Kódy napísané v jazyku Pig Latin MapReduce sa automaticky prevedú na ekvivalentné funkcie MapReduce. Nie je to úžasné? Ďalším faktom, ktorý vyfukuje myseľ, je to, že na nahradenie 200 riadkov Java je potrebných iba 10 riadkov prasaťa.



10 riadkov prasaťa = 200 riadkov Javy

To znamená nielen to, že profesionáli, ktorí nepoužívajú Java, používajú Hadoop, ale tiež svedčí o podčiarkujúcej skutočnosti, že Pig používa rovnaký počet technických vývojárov.

Ak navyše chcete napísať svoj vlastný kód MapReduce, môžete to urobiť v ktoromkoľvek z jazykov, ako sú Perl, Python, Ruby alebo C. Niektoré základné operácie, ktoré môžeme vykonať v ľubovoľnej množine údajov pomocou prasa, sú Group, Join, Filter a Sort . Tieto operácie je možné vykonávať na štruktúrovaných, neštruktúrovaných a tiež pološtruktúrovaných dátach. Poskytujú ad hoc spôsob vytvárania a vykonávania úloh MapReduce na veľmi veľkých súboroch údajov.

Ďalej budeme rozumieť Úľ. Jedná sa o otvorený rámec pre ukladanie dát v petabajtovom rozsahu založený na Hadoop pre sumarizáciu, dopytovanie a analýzu údajov. Hive poskytuje pre Hadoop rozhranie podobné SQL. Úľ môžete použiť na čítanie a zápis súborov na serveri Hadoop a na spúšťanie prehľadov z nástroja BI. Niektoré typické funkcie Hadoopu sú:

Ukážem vám ukážku pomocou súboru údajov Pig on Clickstream
Použijeme tieto údaje služby Clickstream a vykonáme transformácie, pripojenia a zoskupenia.

ClickStream je séria kliknutí myšou uskutočnených používateľom pri prístupe na internet, najmä monitorovaných s cieľom posúdiť záujmy osoby na marketingové účely. Používajú ho hlavne online maloobchodné weby ako Flipkart a Amazon, ktoré sledujú vaše aktivity a generujú odporúčania. Súbor údajov Clickstream, ktorý sme využili, má nasledujúce polia:

1. Typ jazyka podporovaného webovou aplikáciou

2. Typ prehliadača

3. Typ pripojenia

4. ID krajiny

5. Časová známka

6. URL

7. Stav používateľa

8. Typ používateľa

S príslušnými poľami to bude vyzerať takto.

Ďalej je uvedený zoznam typov prehľadávačov, ktoré používajú rôzne osoby pri surfovaní na konkrétnej webovej stránke. V zozname sú prehľadávače ako Internet Explorer, Google Chrome, Lynx atď.

Typ internetového pripojenia môže byť Lan / Modem / Wifi. Kompletný zoznam nájdete na obrázku nižšie:

Na nasledujúcom obrázku nájdete zoznam krajín, z ktorých web priťahoval publikum, spolu s ich identifikačnými údajmi.

Keď zhromaždíme všetky súbory údajov, musíme spustiť shell Pig’s Grunt, ktorý sa spúšťa za účelom spustenia príkazov Pig.

Prvá vec, ktorú musíme urobiť pri spustení shellu Grunt, je načítanie údajov Clickstream do vzťahu Pig. Vzťah nie je nič iné ako tabuľka. Ďalej je uvedený príkaz, ktorý používame na načítanie súboru s bydliskom v HDFS do vzťahu Pig.

Schému vzťahu môžeme overiť pomocou príkazu description click_stream.

Teraz musíme pridať referenčné súbory, ktoré budú obsahovať podrobnosti o zozname krajín s ich ID a rôznych typoch prehliadačov spolu s ich ID.

Teraz máme dva referenčné súbory, ale je potrebné ich spojiť, aby sa vytvoril vzťah.
Spustíme príkaz connection_ref na označenie typu pripojenia.

Teraz, keď máme funkčné spojenie a nadviazaný vzťah, ukážeme vám, ako môžeme tieto údaje transformovať.
Pre každý záznam v Clickstream vygenerujeme nový záznam v inom formáte, t. J. Transformované údaje. Nový formát bude obsahovať polia ako TimeStamp, typ prehliadača, ID krajiny a niekoľko ďalších.

Môžeme vykonať operáciu filtra na orezanie veľkých dát. Medzi rôzne typy používateľov patria správcovia, hostia alebo roboti. V našej ukážke som filtroval zoznam hostí.

Ak si pamätáte, identifikátor krajiny sa nachádza v serveri Clickstream a načítali sme súbor country_ref obsahujúci názvy krajín spolu s jeho identifikátormi. Môžeme tak vykonať operáciu spojenia medzi týmito dvoma súbormi a zlúčiť údaje, aby sme odvodili štatistiky.

Ak sme sa pripojili k údajom, potom pomocou zoskupenia môžeme zistiť rôzne krajiny, z ktorých sú používatelia. Keď máme tieto údaje, môžeme vykonať operáciu Počítanie, aby sme určili počet používateľov z konkrétnej krajiny.

Nie je raketovou vedou odvodzovať poznatky z veľkých dát. Je to iba niekoľko z mnohých funkcií, ktoré som implementoval, a pomocou nástrojov ako Hive, Hbase, Oozie, Sqoop a Flume existuje poklad údajov, ktoré ešte treba preskúmať. Takže tí z vás, ktorí sa bránia učeniu Hadoopu, je čas na zmenu.

Máte na nás otázku? Uveďte ich prosím v sekcii komentárov a my sa vám ozveme.

Súvisiace príspevky:

4 spôsoby spoločného používania R a Hadoop

Všetko o vývojárovi s certifikátom Cloudera pre Apache Hadoop