apache-pigAan de slag met Apache-Pig


Opmerkingen

Deze sectie geeft een overzicht van wat apache-pig is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen apache-pig vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor apache-pig nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Installatie of instellingen

Linux

Vereisten (r0.16.0)

Verplicht

Volgens de huidige Apache-Pig documentatie ondersteunt het alleen Unix en Windows besturingssystemen.

  • Hadoop 0.23.X, 1.X of 2.X
  • Java 1.6 of nieuwere versies geïnstalleerd en JAVA_HOME omgevingsvariabele ingesteld op Java-installatiemap

Optioneel

  • Python 2.7 of meer (Python UDF's)
  • Ant 1.8 (voor builds)

Download de nieuwste Pig-release

Download de nieuwste versie van pig van http://pig.apache.org/releases.html#Download

Installatie

mkdir Pig
cd Downloads/ 
tar zxvf pig-(latest-version).tar.gz 
tar zxvf pig-(latest-version).tar.gz 
mv pig-(latest-version).tar.gz/* /home/Pig/
 

Configuratie

Na het installeren van Apache Pig moeten we het configureren.

Open het .bashrc bestand

vim ~/.bashrc
 

Stel in het .bashrc-bestand de volgende variabelen in:

export PIG_HOME = /home/Pig
export PATH  = PATH:/home/Pig/bin
 

sla het bestand op en laad bashrc opnieuw in de omgeving met

. ~/.bashrc
 

De versie van Pig verifiëren

pig –version 
 

Als de installatie is geslaagd, geeft de bovenstaande opdracht het geïnstalleerde Pig-versienummer weer.

Installatie van varkens testen

pig -h
 

Dit zou alle mogelijke commando's moeten weergeven die bij het varken horen

Uw varken is nu lokaal geïnstalleerd en u kunt het uitvoeren met de lokale parameter zoals

pig -x local
 

Verbinding maken met Hadoop

Als Hadoop1.x of 2.x op het cluster is geïnstalleerd en de omgevingsvariabele HADOOP_HOME is ingesteld.

je kunt Pig verbinden met Hadoop door de regel in de .bashrc toe te voegen zoals eerder

export PIG_CLASSPATH = $HADOOP_HOME/conf
 

Lopend Varken

Uitvoeringsmodi

U kunt Pig uitvoeren met de opdracht pig (bin / pig) of door jar bestand (java -cp pig.jar) uit te voeren

PIG scripts kunnen in 3 verschillende modi worden uitgevoerd:

  • Lokale modus

     pig -x local ...
     
  • Mapreduce-modus (standaardmodus)

     pig -x mapreduce ...
          (or)
     pig ...
     
  • Tez lokale modus

     pig -x tez ...
     

Interactieve modus

Pig kan worden uitgevoerd in interactieve modus met behulp van de Grunt shell. Latijnse Latijnse uitspraken en opdrachten kunnen interactief in deze shell worden ingevoerd.

Voorbeeld

$ pig -x <mode> <enter>
grunt>
 

Mode kan een van de uitvoeringsmodi zijn, zoals uitgelegd in de vorige sectie.

Batchmodus

Pig kan ook worden uitgevoerd in batchmodus. Hier wordt een .pig bestand met een lijst met pig-instructies en -opdrachten verstrekt.

Voorbeeld

$ pig -x <mode> <script.pig>
grunt>
 

Op dezelfde manier kan Mode een van de uitvoeringsmodi zijn, zoals uitgelegd in de vorige sectie.

Wat is varken?

Pig biedt een engine voor het parallel uitvoeren van datastromen op Hadoop. Het bevat een taal, Pig Latin, voor het weergeven van deze gegevensstromen. Pig Latin bevat operators voor veel van de traditionele gegevensbewerkingen (samenvoegen, sorteren, filteren, enz.), Evenals de mogelijkheid voor gebruikers om hun eigen functies voor het lezen, verwerken en schrijven van gegevens te ontwikkelen. Pig is een open source-project van Apache. Dit betekent dat gebruikers het gratis kunnen downloaden als bron of binair bestand, het zelf kunnen gebruiken, eraan kunnen bijdragen en het, onder de voorwaarden van de Apache-licentie, in hun producten kunnen gebruiken en naar eigen inzicht kunnen wijzigen.

Voorbeeld van Word Count in Pig

Invoer bestand

Mary had a little lamb
its fleece was white as snow
and everywhere that Mary went
the lamb was sure to go.
 

Varken Word Count Code

-- Load input from the file named Mary, and call the single
-- field in the record 'line'.
input = load 'mary' as (line);

-- TOKENIZE splits the line into a field for each word.
-- flatten will take the collection of records returned by
-- TOKENIZE and produce a separate record for each one, calling the single
-- field in the record word.
words = foreach input generate flatten(TOKENIZE(line)) as word;

-- Now group them together by each word.
grpd = group words by word;

-- Count them.
cntd = foreach grpd generate group, COUNT(words);

-- Print out the results.
dump cntd;
 

uitgang

Mary,2
had,1
a,1
little,1
lamb,2
its,1
fleece,1
was,2
white,1
as,1
snow,1
and,1
everywhere,1
that,1
went,1
the,1
sure,1
to,1
go,1