Delen via


Apache Pig gebruiken met Apache Hadoop in HDInsight

Meer informatie over het gebruik van Apache Pig met HDInsight.

Apache Pig is een platform voor het maken van programma's voor Apache Hadoop met behulp van een procedurele taal die bekend staat als Pig Latin. Pig is een alternatief voor Java voor het maken van MapReduce-oplossingen en is opgenomen in Azure HDInsight. Gebruik de volgende tabel om de verschillende manieren te ontdekken waarop Pig kan worden gebruikt met HDInsight:

Waarom Apache Pig gebruiken

Een van de uitdagingen van het verwerken van gegevens met Behulp van MapReduce in Hadoop is het implementeren van uw verwerkingslogica met behulp van alleen een kaart en een reductiefunctie. Voor complexe verwerking moet u de verwerking vaak opsplitsen in meerdere MapReduce-bewerkingen die aan elkaar zijn gekoppeld om het gewenste resultaat te bereiken.

Met Pig kunt u de verwerking definiƫren als een reeks transformaties waarmee de gegevens stromen om de gewenste uitvoer te produceren.

Met de Latijnse taal Pig kunt u de gegevensstroom beschrijven van onbewerkte invoer, via een of meer transformaties, om de gewenste uitvoer te produceren. Pig Latin programma's volgen dit algemene patroon:

  • Laden: Lees gegevens die moeten worden bewerkt vanuit het bestandssysteem.

  • Transformeren: de gegevens bewerken.

  • Dump of archief: uitvoergegevens naar het scherm of sla deze op voor verwerking.

Door de gebruiker gedefinieerde functies

Pig Latin ondersteunt ook door de gebruiker gedefinieerde functies (UDF), waarmee u externe onderdelen kunt aanroepen die logica implementeren die moeilijk te modelleren is in Pig Latin.

Zie Pig Latin Reference Manual 1 en Pig Latin Reference Manual 2 voor meer informatie over Pig Latin Reference Manual 2.

Voorbeeldgegevens

HDInsight biedt verschillende voorbeeldgegevenssets, die worden opgeslagen in de /example/data mappen en /HdiSamples mappen. Deze mappen bevinden zich in de standaardopslag voor uw cluster. In het Pig-voorbeeld in dit document wordt het Log4j-bestand uit /example/data/sample.loggebruikt.

Elk logboek in het bestand bestaat uit een regel velden die een [LOG LEVEL] veld bevat om het type en de ernst weer te geven, bijvoorbeeld:

2012-02-03 20:26:41 SampleClass3 [ERROR] verbose detail for id 1527353937

In het vorige voorbeeld is het logboekniveau ERROR.

Notitie

U kunt ook een log4j-bestand genereren met behulp van het hulpprogramma voor logboekregistratie van Apache Log4j en dat bestand vervolgens uploaden naar uw blob. Zie Gegevens uploaden naar HDInsight voor instructies. Zie Azure Blob Storage gebruiken met HDInsight voor meer informatie over hoe blobs in Azure Storage worden gebruikt met HDInsight.

Voorbeeldtaak

Met de volgende Pig Latin-taak wordt het sample.log bestand uit de standaardopslag voor uw HDInsight-cluster geladen. Vervolgens wordt een reeks transformaties uitgevoerd die resulteren in het aantal keren dat elk logboekniveau in de invoergegevens heeft plaatsgevonden. De resultaten worden naar STDOUT geschreven.

LOGS = LOAD 'wasb:///example/data/sample.log';
LEVELS = foreach LOGS generate REGEX_EXTRACT($0, '(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)', 1)  as LOGLEVEL;
FILTEREDLEVELS = FILTER LEVELS by LOGLEVEL is not null;
GROUPEDLEVELS = GROUP FILTEREDLEVELS by LOGLEVEL;
FREQUENCIES = foreach GROUPEDLEVELS generate group as LOGLEVEL, COUNT(FILTEREDLEVELS.LOGLEVEL) as COUNT;
RESULT = order FREQUENCIES by COUNT desc;
DUMP RESULT;

In de volgende afbeelding ziet u een samenvatting van wat elke transformatie met de gegevens doet.

Grafische weergave van de transformaties.

De Taak Pig Latin uitvoeren

HDInsight kan Pig Latin-taken uitvoeren met behulp van verschillende methoden. Gebruik de volgende tabel om te bepalen welke methode geschikt is voor u en volg vervolgens de koppeling voor een overzicht.

Pig en SQL Server Integration Services

U kunt SQL Server Integration Services (SSIS) gebruiken om een Pig-taak uit te voeren. Het Azure Feature Pack voor SSIS biedt de volgende onderdelen die werken met Pig-taken in HDInsight.

Meer informatie over het Azure Feature Pack voor SSIS vindt u hier.

Volgende stappen

Nu u hebt geleerd hoe u Pig kunt gebruiken met HDInsight, gebruikt u de volgende koppelingen om andere manieren te verkennen om met Azure HDInsight te werken.