keyboard_arrow_up

Apache Pig

Apache Pig è un framework per l’analisi di grandi quantità di dati che permette di creare job MapReduce tramite un semplice linguaggio ad alto livello. Pig Latin (il linguaggio) definisce un insieme di trasformazioni su data set come aggregazione, join e ordinamento. Pig traduce lo script Pig Latin in MapReduce in modo che possa essere eseguito in Hadoop. Pig Latin più essere esteso tramite UDF (funzioni definite dall”utente) che l’utente può scrivere in Java o un linguaggio di scripting e richiamarle direttamente.

Punti di forza

Pig è stato progettato per l”esecuzione di una lunga serie di operazioni sui dati, rendendolo ideale per:

  • estrarre, trasformare e caricare (ETL) i dati;
  • eseguire ricerche su dati grezzi;
  • elaborazioni iterattive di dati;

In qualunque caso d’uso, il framework sarà:

  • estendibile perchè gli utenti possono creare delle funzioni personalizzare per soddisfare le loro esigenze;
  • facile da programmare perchè operazioni complesse sui dati sono semplificate da Pig Latin garantendo, così, una facile manutenzione;
  • auto-ottimizzante perchè il sistema ottimizza automaticamente i processi lasciando all”utente la libertà di concentrarsi sulla semantica;

Come lavora

Pig viene eseguito su Hadoop e si avvale di MapReduce e dell’HDFS. Tramite il linguaggio di scripting è posibile astrarre il concetto di MapReduce in una forma simile a SQL per la realizzazione di flussi che descrivono come i dati devono essere manipolati. Nella fase di esecuzione, gli script vengono convertiti in jobs Map e Reduce offrendo, così, i vantaggi dell’elaborazione in parallelo lungo i nodi che compongono i clusters.

Modalita d’esecuzione

Pig può essere eseguito in due modalità:

    • Modalità locale: dato che l’accesso avviene su una singola macchina, tutti i file vengono installati ed eseguiti utilizzando un sistema host e il file locale;
    • Modalità MapReduce: modalità predefinita che richiede l’accesso a un cluster Hadoop.

L’utente può scegliere la modalità locale aggiungendo “-x local” in fase di esecuzione.

© FEDERICO BAGATO. All Rights Reserved. Cookie Policy