Un tuffo profondo nel maiale



Questo post del blog è un'analisi approfondita di Pig e delle sue funzioni. Troverai una demo di come puoi lavorare su Hadoop usando Pig senza dipendere da Java.

Uno dei motivi principali per cui la popolarità di Hadoop è salita alle stelle negli ultimi tempi è il fatto che funzionalità come Pig e Hive vengono eseguite su di esso consentendo ai non programmatori di funzionalità che in precedenza erano esclusive dei programmatori Java. Queste caratteristiche erano una conseguenza della crescente domanda di professionisti Hadoop. Altre funzionalità utilizzate dai professionisti Hadoop con background non Java sono Flume, Sqoop, HBase e Oozie.





Per capire perché non hai bisogno di Java per imparare Hadoop, dai un'occhiata questo blog .

1Pig History



Vediamo come funzionano queste funzionalità.

Sappiamo tutti che la conoscenza della programmazione è una necessità per scrivere codici MapReduce. Ma cosa succede se ho uno strumento in grado di eseguire la codifica se fornissi solo i dettagli? È qui che Pig mostra la sua forza muscolare. Pig utilizza una piattaforma chiamata Pig Latin che astrae la programmazione dall'idioma Java MapReduce in una notazione che rende la programmazione MapReduce di alto livello, simile a quella di SQL per i sistemi RDBMS. I codici scritti in Pig Latin MapReduce vengono convertiti automaticamente in funzioni MapReduce equivalenti. Non è fantastico? Un altro fatto strabiliante è che sono necessarie solo 10 righe di maiale per sostituire 200 righe di Java.



10 righe di Pig = 200 righe di Java

Ciò non solo significa che i professionisti non Java utilizzano Hadoop, ma testimonia anche il fatto che Pig è utilizzato da un numero uguale di sviluppatori tecnici.

Inoltre, se desideri scrivere il tuo codice MapReduce, puoi farlo in uno qualsiasi dei linguaggi come Perl, Python, Ruby o C. Alcune operazioni di base che possiamo eseguire su qualsiasi set di dati utilizzando Pig sono Raggruppa, Unisci, Filtra e Ordina . Queste operazioni possono essere eseguite su dati strutturati, non strutturati e anche semi-strutturati. Forniscono un modo ad hoc per la creazione e l'esecuzione di lavori MapReduce su set di dati molto grandi.

Successivamente, vediamo di capire Hive. È un framework di data warehousing open source su scala peta-byte basato su Hadoop per il riepilogo dei dati, le query e l'analisi. Hive fornisce un'interfaccia simile a SQL per Hadoop. Puoi utilizzare Hive per leggere e scrivere file su Hadoop ed eseguire i tuoi report da uno strumento BI. Alcune funzionalità tipiche di Hadoop sono:

Lascia che ti mostri una demo utilizzando il set di dati Pig on Clickstream
Useremo questi dati Clickstream ed eseguiremo trasformazioni, join e raggruppamenti.

ClickStream è una serie di clic del mouse effettuati da un utente durante l'accesso a Internet, in particolare monitorati per valutare gli interessi di una persona a fini di marketing. Viene utilizzato principalmente da siti Web di vendita al dettaglio online come Flipkart e Amazon che tracciano le tue attività per generare consigli. Il set di dati del flusso di clic che abbiamo utilizzato ha i seguenti campi:

1. Tipo di lingua supportata dall'applicazione web

2. Tipo di browser

3. Tipo di connessione

4. ID Paese

5. Timestamp

6. URL

7. Stato utente

8. Tipo di utente

Apparirà così con i campi appropriati.

Di seguito è riportato l'elenco dei tipi di browser che sono stati utilizzati da varie persone durante la navigazione su un determinato sito Web. Nell'elenco ci sono browser come Internet Explorer, Google Chrome, Lynx e così via.

Il tipo di connessione Internet può essere Lan / Modem / Wifi. Guarda l'immagine qui sotto per l'elenco completo:

cosa fa .innerhtml

Nell'immagine successiva, troverai l'elenco dei paesi da cui il sito Web ha attirato il pubblico insieme ai loro ID.

Una volta raccolti tutti i set di dati, dobbiamo avviare la shell Grunt di Pig, che viene avviata per eseguire i comandi di Pig.

La prima cosa che dobbiamo fare all'avvio della shell Grunt è caricare i dati del flusso di clic nella relazione di Pig. Una relazione non è altro che un tavolo. Di seguito è riportato il comando che utilizziamo per caricare un file che risiede in HDFS nella relazione di Pig.

Possiamo verificare lo schema della relazione tramite il comando descrivere click_stream.

Ora dobbiamo aggiungere i file di riferimento che conterranno i dettagli sull'elenco dei paesi con i loro ID e i diversi tipi di browser insieme ai loro ID.

Ora abbiamo due file di riferimento, ma devono essere collegati per formare una relazione.
Eseguiamo un comando connection_ref per indicare il tipo di connessione.

Ora che abbiamo una connessione funzionante e una relazione stabilita, ti mostreremo come possiamo trasformare quei dati.
Per ogni record in Clickstream, genereremo un nuovo record in un formato diverso, ovvero i dati trasformati. Il nuovo formato includerà campi come TimeStamp, tipo di browser, ID paese e altri ancora.

Possiamo eseguire un'operazione di filtro per ridurre i Big Data. I diversi tipi di utenti sono amministratori, ospiti o bot. Nella nostra demo, ho filtrato l'elenco per gli ospiti.

Se ricordi, l'ID paese è presente nel flusso di clic e abbiamo caricato un file country_ref contenente i nomi dei paesi insieme ai relativi ID. Possiamo quindi eseguire un'operazione di unione tra i due file e unire i dati per ricavare approfondimenti.

Se abbiamo unito i dati, possiamo scoprire i diversi paesi da cui si trovano gli utenti per raggruppamento. Una volta ottenuti questi dati, possiamo eseguire un'operazione di conteggio per identificare il numero di utenti di un determinato paese.

Non è scienza missilistica ricavare intuizioni dai Big Data. Queste sono solo alcune delle tante funzionalità che ho implementato e con strumenti come Hive, Hbase, Oozie, Sqoop e Flume c'è un tesoro di dati ancora da esplorare. Quindi quelli di voi che si stanno trattenendo dall'apprendimento di Hadoop, è tempo di cambiare.

Hai domande per noi? Per favore menzionali nella sezione commenti e ti risponderemo.

Post correlati:

4 modi per utilizzare R e Hadoop insieme

Tutto su Cloudera Certified Developer per Apache Hadoop