Porc (program)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Pig [1] este o platformă de nivel înalt pentru crearea de programe MapReduce pentru utilizare cu Apache Hadoop . Limba pentru această platformă se numește Pig Latin.

Aceasta abstractizează programarea din idiomul Java MapReduce într-o notație care redă programarea MapReduce la un nivel înalt similar cu SQL al sistemelor RDBMS . Pig Latin poate fi extins utilizând UDF (User Defined Functions) cu ajutorul căruia utilizatorul poate scrie în Java , Python , JavaScript , Ruby sau Groovy [2] și poate apela direct din limbă.

A fost dezvoltat pentru prima dată de Yahoo Research în 2006 [3] pentru ca cercetătorii să aibă o modalitate ad-hoc de a crea și rula locuri de muncă Map-Reduce pe seturi mari de date. În 2007 [4] s-a alăturat Apache Software Foundation [5] .

Exemplu

Un exemplu de program de „numărare de cuvinte” în Pig Latin:

 input_lines = LOAD '/ tmp / my-copy-of-all-pages-on-internet' AS ( line: chararray );
 
 - Extrageți cuvinte din fiecare rând și puneți-le într-o pungă de porci
 - tipul de date, apoi aplatizați punga pentru a obține un cuvânt pe fiecare rând
 cuvinte = FOREACH input_lines GENERATE FLATTEN ( TOKENIZE ( line )) AS word;
 
 - filtrați orice cuvinte care sunt doar spații albe
 filtered_words = cuvinte FILTRARE DE PARTIDE verbale '\\ w +';
 
 - creați un grup pentru fiecare cuvânt
 word_groups = GROUP Filtered_words BY word;
 
 - numărați intrările din fiecare grup
 word_count = FOREACH word_groups GENERATE COUNT ( filtered_words ) AS count , grup AS word;
 
 - ordonați înregistrările după număr
 commander_word_count = COMANDĂ word_count CU număr DESC ;
 STORE ordered_word_count în '/ tmp / număr de cuvinte--la- la internet';

Programul generează un executabil cu sarcini efectuate în paralel, care poate fi distribuit pe mai multe mașini dintr-un cluster Hadoop pentru a număra numărul de cuvinte dintr-un set de date, cum ar fi toate paginile web de pe internet.

Notă

  1. ^ Hadoop: Apache Pig , la pig.apache.org . Adus pe 2 septembrie 2011 .
  2. ^ Funcții definite de utilizator Pig , la pig.apache.org . Adus pe 3 mai 2013 .
  3. ^ Yahoo Blog: Pig - Drumul către un limbaj eficient la nivel înalt pentru Hadoop , la developer.yahoo.com . Adus la 23 mai 2015 (arhivat din original la 3 februarie 2016) .
  4. ^ Pig in Incubation la Apache Software Foundation , la developer.yahoo.com . Adus la 23 mai 2015 (arhivat din original la 3 februarie 2016) .
  5. ^ Apache Software Foundation , la apache.org . Adus la 1 noiembrie 2010 .

linkuri externe