Delen via


Apache Pig optimaliseren met Apache Ambari in Azure HDInsight

Apache Ambari is een webinterface voor het beheren en bewaken van HDInsight-clusters. Zie HDInsight-clusters beheren met behulp van de Apache Ambari-webinterface voor een inleiding tot de Ambari-webinterface.

Apache Pig-eigenschappen kunnen worden gewijzigd vanuit de Ambari-webgebruikersinterface om Pig-query's af te stemmen. Als u Pig-eigenschappen van Ambari wijzigt, worden de pig-eigenschappen in het /etc/pig/2.4.2.0-258.0/pig.properties bestand rechtstreeks gewijzigd.

  1. Als u pig-eigenschappen wilt wijzigen, gaat u naar het tabblad Pig-configuraties en vouwt u het deelvenster Geavanceerde pig-eigenschappen uit.

  2. Zoek, verwijder opmerkingen en wijzig de waarde van de eigenschap die u wilt wijzigen.

  3. Selecteer Opslaan rechtsboven in het venster om de nieuwe waarde op te slaan. Voor sommige eigenschappen moet de service mogelijk opnieuw worden opgestart.

    Advanced Apache pig properties.

Notitie

Instellingen op sessieniveau overschrijven eigenschapswaarden in het pig.properties bestand.

Engine voor het afstemmen van de uitvoering

Er zijn twee uitvoeringsengines beschikbaar voor het uitvoeren van Pig-scripts: MapReduce en Tez. Tez is een geoptimaliseerde engine en is veel sneller dan MapReduce.

  1. Als u de uitvoeringsengine wilt wijzigen, zoekt u de eigenschap in het deelvenster Geavanceerde pig-eigenschappen.exectype

  2. De standaardwaarde is MapReduce. Wijzig het in Tez.

Lokale modus inschakelen

Net als bij Hive wordt de lokale modus gebruikt om taken met relatief kleinere hoeveelheden gegevens te versnellen.

  1. Als u de lokale modus wilt inschakelen, stelt u in op pig.auto.local.enabled true. De standaardwaarde is false.

  2. Taken met een invoergegevensgrootte kleiner dan de pig.auto.local.input.maxbytes eigenschapswaarde worden beschouwd als kleine taken. De standaardwaarde is 1 GB.

Jar-cache van gebruiker kopiëren

Pig kopieert de JAR-bestanden die door UDF's zijn vereist naar een gedistribueerde cache om ze beschikbaar te maken voor taakknooppunten. Deze jar's veranderen niet vaak. Als deze optie is ingeschakeld, pig.user.cache.enabled kunnen JAR's in een cache worden geplaatst om ze opnieuw te gebruiken voor taken die door dezelfde gebruiker worden uitgevoerd. Deze instelling resulteert in een kleine toename van de taakprestaties.

  1. Als u dit wilt inschakelen, stelt u pig.user.cache.enabled in op waar. De standaardwaarde is onwaar.

  2. Als u het basispad van de in de cache opgeslagen JAR's wilt instellen, stelt u pig.user.cache.location het basispad in. De standaardwaarde is /tmp.

Prestaties optimaliseren met geheugeninstellingen

De volgende geheugeninstellingen kunnen helpen bij het optimaliseren van de prestaties van Pig-scripts.

  • pig.cachedbag.memusage: De hoeveelheid geheugen die aan een zak wordt gegeven. Een tas is een verzameling tuples. Een tuple is een geordende set velden en een veld is een stukje gegevens. Als de gegevens in een zak zich buiten het opgegeven geheugen bevinden, worden deze overlopen naar de schijf. De standaardwaarde is 0,2, die 20 procent van het beschikbare geheugen vertegenwoordigt. Dit geheugen wordt gedeeld tussen alle tassen in een toepassing.

  • pig.spill.size.threshold: Zakken die groter zijn dan deze drempelwaarde voor overloopgrootte (in bytes) worden overgeslagen op schijf. De standaardwaarde is 5 MB.

Tijdelijke bestanden comprimeren

Pig genereert tijdelijke bestanden tijdens het uitvoeren van de taak. Het comprimeren van de tijdelijke bestanden resulteert in een prestatieverhoging bij het lezen of schrijven van bestanden naar schijf. De volgende instellingen kunnen worden gebruikt om tijdelijke bestanden te comprimeren.

  • pig.tmpfilecompression: Indien waar, schakelt u tijdelijke bestandscompressie in. De standaardwaarde is false.

  • pig.tmpfilecompression.codec: De compressiecodec die moet worden gebruikt voor het comprimeren van de tijdelijke bestanden. De aanbevolen compressiecodecs zijn LZO en Snappy voor lager CPU-gebruik.

Splitsen combineren inschakelen

Wanneer deze optie is ingeschakeld, worden kleine bestanden gecombineerd voor minder toewijzingstaken. Deze instelling verbetert de efficiëntie van taken met veel kleine bestanden. Als u dit wilt inschakelen, stelt u pig.noSplitCombination in op waar. De standaardwaarde is false.

Mappers afstemmen

Het aantal mappers wordt bepaald door de eigenschap pig.maxCombinedSplitSizete wijzigen. Met deze eigenschap geeft u de grootte op van de gegevens die moeten worden verwerkt door één toewijzingstaak. De standaardwaarde is de standaardblokgrootte van het bestandssysteem. Als u deze waarde verhoogt, resulteert dit in een lager aantal toewijzingstaken.

Reducers afstemmen

Het aantal reducers wordt berekend op basis van de parameter pig.exec.reducers.bytes.per.reducer. De parameter geeft het aantal bytes op dat per reducer wordt verwerkt, standaard 1 GB. Als u het maximum aantal reducers wilt beperken, stelt u de pig.exec.reducers.max eigenschap in, standaard 999.

Volgende stappen