Optymalizowanie oprogramowania Apache Pig przy użyciu narzędzia Apache Ambari w usłudze Azure HDInsight
Apache Ambari to interfejs internetowy do zarządzania klastrami usługi HDInsight i monitorowania ich. Aby zapoznać się z wprowadzeniem do internetowego interfejsu użytkownika systemu Ambari, zobacz Manage HDInsight clusters by using the Apache Ambari Web UI (Zarządzanie klastrami usługi HDInsight przy użyciu internetowego interfejsu użytkownika systemu Apache Ambari).
Właściwości platformy Apache Pig można modyfikować z internetowego interfejsu użytkownika systemu Ambari w celu dostrajania zapytań pig. Modyfikowanie właściwości pig z systemu Ambari bezpośrednio modyfikuje właściwości pig w /etc/pig/2.4.2.0-258.0/pig.properties
pliku.
Aby zmodyfikować właściwości pig, przejdź do karty Konfiguracja pig, a następnie rozwiń okienko Zaawansowane właściwości pig-properties.
Znajdź, usuń komentarz i zmień wartość właściwości, którą chcesz zmodyfikować.
Wybierz pozycję Zapisz w prawym górnym rogu okna, aby zapisać nową wartość. Niektóre właściwości mogą wymagać ponownego uruchomienia usługi.
Uwaga
Wszystkie ustawienia na poziomie sesji zastępują wartości właściwości w pig.properties
pliku.
Dostrajanie aparatu wykonywania
Dostępne są dwa aparaty wykonywania skryptów Pig: MapReduce i Tez. Tez jest zoptymalizowanym aparatem i jest znacznie szybszy niż MapReduce.
Aby zmodyfikować aparat wykonywania, w okienku Zaawansowane właściwości pig-properties znajdź właściwość
exectype
.Wartość domyślna to MapReduce. Zmień ją na Tez.
Włączanie trybu lokalnego
Podobnie jak w przypadku programu Hive, tryb lokalny służy do przyspieszania zadań ze stosunkowo mniejszymi ilościami danych.
Aby włączyć tryb lokalny, ustaw wartość
pig.auto.local.enabled
true. Wartość domyślna to false.Zadania o rozmiarze danych wejściowych mniejsze niż
pig.auto.local.input.maxbytes
wartość właściwości są uważane za małe zadania. Wartość domyślna to 1 GB.
Kopiowanie pamięci podręcznej jar użytkownika
Pig kopiuje pliki JAR wymagane przez funkcje zdefiniowane przez użytkownika do rozproszonej pamięci podręcznej, aby udostępnić je węzłom zadań. Te pliki jar nie zmieniają się często. Jeśli to ustawienie jest włączone, pig.user.cache.enabled
ustawienie umożliwia umieszczanie plików jar w pamięci podręcznej w celu ponownego użycia ich w przypadku zadań uruchamianych przez tego samego użytkownika. To ustawienie powoduje niewielki wzrost wydajności zadania.
Aby włączyć, ustaw wartość
pig.user.cache.enabled
true. Wartością domyślną jest false.Aby ustawić ścieżkę podstawową buforowanych plików jar, ustaw
pig.user.cache.location
ścieżkę podstawową. Wartość domyślna to/tmp
.
Optymalizowanie wydajności przy użyciu ustawień pamięci
Następujące ustawienia pamięci mogą pomóc w optymalizacji wydajności skryptów Pig.
pig.cachedbag.memusage
: ilość pamięci podanej w torbie. Torba jest kolekcją krotki. Krotka jest uporządkowanym zestawem pól, a pole jest fragmentem danych. Jeśli dane w torbie wykraczają poza daną pamięć, są rozlane na dysk. Wartość domyślna to 0,2, która reprezentuje 20 procent dostępnej pamięci. Ta pamięć jest współdzielona we wszystkich torbach w aplikacji.pig.spill.size.threshold
: Torby większe niż ten próg rozmiaru rozlania (w bajtach) są rozlane na dysk. Wartość domyślna to 5 MB.
Kompresowanie plików tymczasowych
Program Pig generuje pliki tymczasowe podczas wykonywania zadania. Kompresowanie plików tymczasowych powoduje wzrost wydajności podczas odczytywania lub zapisywania plików na dysku. Następujące ustawienia mogą służyć do kompresowania plików tymczasowych.
pig.tmpfilecompression
: Jeśli wartość true, włącza kompresję plików tymczasowych. Wartość domyślna to false.pig.tmpfilecompression.codec
: koder kodujący kompresji używany do kompresowania plików tymczasowych. Zalecane kodery kompresji to LZO i Snappy w celu niższego użycia procesora.
Włączanie łączenia podziału
Po włączeniu małe pliki są łączone dla mniejszej liczby zadań mapy. To ustawienie zwiększa wydajność zadań z wieloma małymi plikami. Aby włączyć, ustaw wartość pig.noSplitCombination
true. Wartość domyślna to false.
Dostrajanie maperów
Liczba maperów jest kontrolowana przez zmodyfikowanie właściwości pig.maxCombinedSplitSize
. Ta właściwość określa rozmiar danych, które mają być przetwarzane przez jedno zadanie mapy. Wartość domyślna to domyślny rozmiar bloku systemu plików. Zwiększenie tej wartości powoduje zmniejszenie liczby zadań mapowania.
Reduktory dostrajania
Liczba reduktorów jest obliczana na podstawie parametru pig.exec.reducers.bytes.per.reducer
. Parametr określa liczbę bajtów przetworzonych na reduktor, domyślnie 1 GB. Aby ograniczyć maksymalną liczbę reduktorów, ustaw pig.exec.reducers.max
właściwość domyślnie 999.