Porc (program)
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ă
- ^ Hadoop: Apache Pig , la pig.apache.org . Adus pe 2 septembrie 2011 .
- ^ Funcții definite de utilizator Pig , la pig.apache.org . Adus pe 3 mai 2013 .
- ^ 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) .
- ^ Pig in Incubation la Apache Software Foundation , la developer.yahoo.com . Adus la 23 mai 2015 (arhivat din original la 3 februarie 2016) .
- ^ Apache Software Foundation , la apache.org . Adus la 1 noiembrie 2010 .