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.
Als u pig-eigenschappen wilt wijzigen, gaat u naar het tabblad Pig-configuraties en vouwt u het deelvenster Geavanceerde pig-eigenschappen uit.
Zoek, verwijder opmerkingen en wijzig de waarde van de eigenschap die u wilt wijzigen.
Selecteer Opslaan rechtsboven in het venster om de nieuwe waarde op te slaan. Voor sommige eigenschappen moet de service mogelijk opnieuw worden opgestart.
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.
Als u de uitvoeringsengine wilt wijzigen, zoekt u de eigenschap in het deelvenster Geavanceerde pig-eigenschappen.
exectype
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.
Als u de lokale modus wilt inschakelen, stelt u in op
pig.auto.local.enabled
true. De standaardwaarde is false.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.
Als u dit wilt inschakelen, stelt u
pig.user.cache.enabled
in op waar. De standaardwaarde is onwaar.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.maxCombinedSplitSize
te 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.