Una immersió profunda en porc



Aquesta entrada al bloc és una immersió profunda en Pig i les seves funcions. Trobareu una demostració de com podeu treballar a Hadoop utilitzant Pig sense cap dependència de Java.

Una de les principals raons per les quals la popularitat de Hadoop es va disparar en els darrers temps és el fet que funcions com Pig i Hive funcionen a sobre, cosa que permet als no programadors amb funcionalitats que abans eren exclusives dels programadors Java. Aquestes característiques van ser conseqüència de la creixent demanda de professionals d'Hadoop. Altres funcions que fan servir professionals de Hadoop d’origen no Java són Flume, Sqoop, HBase i Oozie.





Per entendre per què no necessiteu Java per aprendre Hadoop, consulteu-ho aquest bloc .

1Història del porc



Vegem com funcionen aquestes funcions.

Tots sabem que el coneixement de la programació és una necessitat per escriure codis MapReduce. Però, què passa si tinc una eina que pot fer la codificació si només proporcioni els detalls? Allà és on el porc exhibeix el seu poder muscular. Pig utilitza una plataforma anomenada Pig Latin que resumeix la programació de l'idioma Java MapReduce en una notació que fa que la programació MapReduce sigui d'alt nivell, similar a la de SQL per als sistemes RDBMS. Els codis escrits en Pig Latin MapReduce es converteixen automàticament en funcions equivalents de MapReduce. No és increïble? Un altre fet al·lucinant és que només calen 10 línies de porc per substituir 200 línies de Java.



10 línies de porc = 200 línies de Java

com convertir de doble a int java

Això no només significa que professionals no Java utilitzen Hadoop, sinó que també testimonia el fet subratllat que Pig utilitza un nombre igual de desenvolupadors tècnics.

A més, si voleu escriure el vostre propi codi MapReduce, podeu fer-ho en qualsevol dels idiomes com Perl, Python, Ruby o C. Algunes operacions bàsiques que podem realitzar en qualsevol conjunt de dades mitjançant Pig són Agrupar, Unir, Filtrar i Ordenar . Aquestes operacions es poden realitzar sobre dades estructurades, no estructurades i també semiestructurades. Proporcionen una manera ad hoc de crear i executar feines MapReduce en conjunts de dades molt grans.

A continuació, entenem Hive. És un marc de magatzematge de dades a escala peta-byte de codi obert basat en Hadoop per resumir, consultar i analitzar dades. Hive proporciona una interfície similar a SQL per a Hadoop. Podeu utilitzar Hive per llegir i escriure fitxers a Hadoop i executar els vostres informes des d’una eina de BI. Algunes funcionalitats típiques de Hadoop són:

Permeteu-me que us mostri una demostració mitjançant el conjunt de dades Pig on Clickstream
Utilitzarem aquestes dades de Clickstream i realitzarem transformacions, combinacions i agrupacions.

ClickStream és una sèrie de clics del ratolí fets per un usuari mentre accedeix a Internet, especialment com a controls per avaluar els interessos d’una persona amb finalitats de màrqueting. L’utilitzen principalment llocs web de venda al detall en línia com Flipkart i Amazon que fan un seguiment de les vostres activitats per generar recomanacions. El conjunt de dades Clickstream que hem utilitzat té els camps següents:

1. Tipus d'idioma admès per l'aplicació web

2. Tipus de navegador

3. Tipus de connexió

4. Identificador de país

5. Segell de temps

6. URL

7. Estat de l'usuari

8. Tipus d'usuari

Serà així amb els camps adequats.

A continuació es mostra la llista de tipus de navegadors que han estat utilitzats per diverses persones quan navegaven en un lloc web concret. Entre la llista hi ha navegadors com Internet Explorer, Google Chrome, Lynx, etc.

El tipus de connexió a Internet pot ser Lan / Mòdem / Wifi. Vegeu la imatge següent per obtenir la llista completa:

A la següent imatge, trobareu la llista de països des d’on el lloc web ha atret audiència juntament amb els seus identificadors.

print_r ()

Un cop hem reunit tots els conjunts de dades, hem d’iniciar l’intèrpret d’ordres Pig’s Grunt, que s’inicia per executar les ordres Pig.

El primer que hem de fer en llançar el shell Grunt és carregar les dades Clickstream a la relació de Pig. Una relació no és més que una taula. A continuació es mostra l’ordre que fem servir per carregar un fitxer que resideix a HDFS a la relació de Pig.

Podem verificar l’esquema de la relació mitjançant l’ordre descriu click_stream.

Ara hem d’afegir els fitxers de referència que inclouran detalls sobre la llista de països amb els seus identificadors i els diferents tipus de navegadors juntament amb els seus identificadors.

Ara tenim dos fitxers de referència, però cal connectar-los per formar una relació.
Executem una ordre connection_ref per indicar el tipus de connexió.

Ara que tenim una connexió de treball i una relació establerta, us mostrarem com podem transformar aquestes dades.
Per a cada registre de Clickstream, generarem un registre nou en un format diferent, és a dir, les dades transformades. El nou format inclourà camps com TimeStamp, tipus de navegador, identificadors de país i alguns més.

Podem realitzar una operació de filtre per reduir el Big Data. Els diferents tipus d’usuaris són els administradors, els convidats o els robots. A la nostra demostració, he filtrat la llista per als convidats.

Si ho recordeu, l’identificador de país és present a Clickstream i hem carregat un fitxer country_ref que conté els noms dels països juntament amb els seus identificadors. Per tant, podem realitzar una operació d’unió entre els dos fitxers i combinar les dades per obtenir informació.

Si hem unit les dades, podem conèixer els diferents països d’on són els usuaris per agrupació. Un cop tinguem aquestes dades, podem realitzar una operació de recompte per identificar el nombre d’usuaris d’un país concret.

No és cap ciència de coets derivar informació del Big Data. Aquestes són només algunes de les moltes funcions que he implementat i amb eines com Hive, Hbase, Oozie, Sqoop i Flume, hi ha un tresor de dades encara per explorar. Per tant, aquells de vosaltres que us freneu a aprendre Hadoop, és hora de canviar.

Tens alguna pregunta? Esmenteu-los a la secció de comentaris i us respondrem.

Articles Relacionats:

4 maneres d'utilitzar R i Hadoop junts

Tot sobre el desenvolupador certificat per Cloudera per a Apache Hadoop